Function at 0x72d350
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100217c0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x30
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [ebp - 0x1c], esi
mov eax, dword [esi + 8]
mov dword [ebp - 0x10], esp
cmp eax, ebx
mov dword [ebp - 4], ebx
mov dword [esi + 0xa0], ebx
je 0x72d38d
call fcn.0072dad0
cmp dword [ebp + 0xc], ebx
jne 0x72d397
mov dword [esi + 0x20], ebx
jmp 0x72d39e
mov dword [esi + 0x20], 1
lea ecx, [esi + 0x24]
call fcn.0072c870
push 0x10000
call fcn.0072d250
add esp, 4
cmp eax, ebx
mov dword [esi + 0x7c], eax
jne 0x72d3cf
push 0x1002df20
push ebx
push 0x53
push 0x1002eb40
call fcn.0072c9c0
add esp, 0x10
mov edi, dword [ebp + 8]
push ebx
push 0x80
push 3
push ebx
push 1
push closesocket
push edi
call dword [0x10022050]
cmp eax, 0xffffffff
mov dword [esi + 8], eax
jne 0x72d407
push edi
push 0x1002eb1c
push ebx
push 0x56
push 0x1002eb40
call fcn.0072c9c0
add esp, 0x14
lea eax, [esi + 0x10]
push eax
mov eax, dword [esi + 8]
push eax
call dword [0x10022140]
test eax, eax
jne 0x72d42e
push 0x1002eaf8
push ebx
push 0x57
push 0x1002eb40
call fcn.0072c9c0
add esp, 0x10
mov edx, dword [esi + 8]
lea ecx, [ebp - 0x14]
push ebx
lea edi, [esi + 0xa4]
push ecx
push 2
push edi
mov dword [esi + 0x98], ebx
mov dword [esi + 0x90], ebx
mov dword [esi + 0x88], ebx
push edx
mov dword [esi + 0x9c], ebx
mov dword [esi + 0x94], ebx
mov dword [esi + 0x8c], ebx
mov dword [esi + 0x80], ebx
mov word [edi], bx
call dword [0x10022048]
test eax, eax
jne 0x72d490
mov eax, dword [ebp + 8]
push eax
push 0x1002ead8
push ebx
push 0x63
push 0x1002eb40
call fcn.0072c9c0
add esp, 0x14
cmp word [edi], 0x5a4d
je 0x72d4ad
push 0x1002eac8
push 1
push 0x64
push 0x1002eb40
call fcn.0072d0f0
add esp, 0x10
mov edx, dword [esi + 0x20]
xor ecx, ecx
push edx
xor eax, eax
push 0x40
push ecx
push eax
push edi
mov ecx, esi
call fcn.0072f370
cmp eax, ebx
jne 0x72d4ca
call fcn.0072d1d0
mov eax, dword [esi + 0xe0]
mov edx, dword [esi + 0x14]
xor ecx, ecx
add eax, 4
cmp ecx, edx
jl 0x72d503
jg 0x72d4e3
cmp eax, dword [esi + 0x10]
jbe 0x72d503
push 0x1002eab0
push 1
push 0x6e
push 0x1002eb40
mov dword [esi + 0xa0], 2
call fcn.0072d0f0
add esp, 0x10
mov eax, dword [esi + 0xe0]
lea ecx, [ebp - 0x18]
cdq
mov ebx, eax
mov eax, dword [esi + 0x20]
mov edi, edx
push eax
push 4
push edi
push ebx
push ecx
mov ecx, esi
call fcn.0072f370
test eax, eax
jne 0x72d52a
call fcn.0072d1d0
mov ecx, dword [ebp - 0x18]
mov eax, ecx
and eax, 0xffff
sub eax, 0x454c
je 0x72d588
sub eax, 2
je 0x72d573
sub eax, 2
je 0x72d55d
push 0x1002eab0
push 1
mov dword [esi + 0xa0], 2
push 0x86
jmp 0x72d59b
cmp ecx, 0x4550
je 0x72d5a8
push 0x1002eaa0
push 1
push 0x82
jmp 0x72d59b
push 0x1002ea88
push 1
mov dword [esi + 0xa0], 3
push 0x7a
jmp 0x72d59b
push 0x1002ea70
push 1
mov dword [esi + 0xa0], 4
push 0x7e
push 0x1002eb40
call fcn.0072d0f0
add esp, 0x10
mov edx, dword [esi + 0x20]
add ebx, 4
adc edi, 0
push edx
push 0x14
lea eax, [esi + 0xe4]
push edi
push ebx
push eax
mov ecx, esi
mov dword [esi + 0xa0], 6
call fcn.0072f370
test eax, eax
jne 0x72d5d7
call fcn.0072d1d0
mov ax, word [esi + 0xe4]
add ebx, 0x14
adc edi, 0
cmp ax, 0x14c
mov dword [ebp - 0x2c], edi
je 0x72d61c
cmp ax, 0x200
je 0x72d61c
cmp ax, 0x8664
je 0x72d61c
push 0x1002ea4c
push 1
push 0x94
push 0x1002eb40
mov dword [esi + 0xa0], 5
call fcn.0072d0f0
add esp, 0x10
mov ecx, dword [esi + 0x20]
lea eax, [esi + 0xf8]
push ecx
push 2
push edi
push ebx
push eax
mov ecx, esi
call fcn.0072f370
test eax, eax
jne 0x72d63b
call fcn.0072d1d0
mov ax, word [esi + 0xf8]
cmp ax, 0x10b
jne 0x72d6ef
xor eax, eax
mov ax, word [esi + 0xf4]
cmp eax, 0xe0
mov dword [ebp - 0x14], eax
jbe 0x72d667
mov eax, 0xe0
mov dword [ebp - 0x14], eax
mov edx, dword [esi + 0x20]
lea edi, [esi + 0x1b4]
push edx
push eax
mov eax, dword [ebp - 0x2c]
mov ecx, esi
push eax
push ebx
push edi
call fcn.0072f370
test eax, eax
jne 0x72d688
call fcn.0072d1d0
lea ecx, [edi + 0x60]
mov dword [esi + 0x120], edi
mov dword [esi + 0x128], ecx
mov edx, dword [edi + 0x5c]
mov dword [esi + 0xfc], edx
mov eax, dword [edi + 0x10]
mov dword [esi + 0x100], eax
mov ecx, dword [edi + 0x20]
mov dword [esi + 0x104], ecx
mov edx, dword [edi + 0x38]
mov dword [esi + 0x10c], edx
mov eax, dword [edi + 0x24]
mov dword [esi + 0x108], eax
mov ecx, dword [edi + 4]
mov dword [esi + 0x110], ecx
mov edx, dword [edi + 0x1c]
xor eax, eax
mov dword [esi + 0x118], edx
mov dword [esi + 0x11c], eax
mov ecx, dword [edi + 0x24]
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], eax
jmp 0x72d7b7
cmp ax, 0x20b
jne 0x72d79e
xor eax, eax
mov ax, word [esi + 0xf4]
cmp eax, 0xf0
mov dword [ebp - 0x14], eax
jbe 0x72d714
mov eax, 0xf0
mov dword [ebp - 0x14], eax
mov edx, dword [esi + 0x20]
lea edi, [esi + 0x1b4]
push edx
push eax
mov eax, dword [ebp - 0x2c]
mov ecx, esi
push eax
push ebx
push edi
call fcn.0072f370
test eax, eax
jne 0x72d735
call fcn.0072d1d0
lea ecx, [edi + 0x70]
mov dword [esi + 0x124], edi
mov dword [esi + 0x128], ecx
mov edx, dword [edi + 0x6c]
mov dword [esi + 0xfc], edx
mov eax, dword [edi + 0x10]
mov dword [esi + 0x100], eax
mov ecx, dword [edi + 0x20]
mov dword [esi + 0x104], ecx
mov edx, dword [edi + 0x38]
mov dword [esi + 0x10c], edx
mov eax, dword [edi + 0x24]
mov dword [esi + 0x108], eax
mov ecx, dword [edi + 4]
mov dword [esi + 0x110], ecx
mov edx, dword [edi + 0x18]
mov dword [esi + 0x118], edx
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x11c], eax
mov ecx, dword [edi + 0x24]
mov edi, dword [ebp - 0x2c]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], 0
jmp 0x72d7b7
push 0x1002ea30
push 1
push 0xbb
push 0x1002eb40
call fcn.0072d0f0
add esp, 0x10
mov ecx, dword [esi + 0xfc]
mov eax, 0x10
cmp ecx, eax
jbe 0x72d7cc
mov dword [esi + 0xfc], eax
xor eax, eax
mov ecx, esi
mov ax, word [esi + 0xf4]
cdq
add ebx, eax
adc edi, edx
call fcn.0072fde0
test eax, eax
jne 0x72d7ea
call fcn.0072d1d0
xor eax, eax
mov ax, word [esi + 0xe6]
mov dword [esi + 0x2a4], eax
lea edx, [eax + eax*4]
shl edx, 3
push edx
call fcn.0072d250
add esp, 4
mov dword [esi + 0x2a8], eax
test eax, eax
jne 0x72d82a
push 0x1002df20
push eax
push 0xc4
push 0x1002eb40
call fcn.0072c9c0
add esp, 0x10
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x2a8]
push eax
mov eax, dword [esi + 0x2a4]
lea ecx, [eax + eax*4]
shl ecx, 3
push ecx
push edi
push ebx
push edx
mov ecx, esi
call fcn.0072f370
test eax, eax
jne 0x72d854
call fcn.0072d1d0
mov eax, dword [esi + 0x2a4]
mov ecx, esi
lea eax, [eax + eax*4]
shl eax, 3
add ebx, eax
adc edi, 0
call fcn.0072fa50
test eax, eax
jne 0x72d875
call fcn.0072d1d0
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x24]
mov edx, ecx
push eax
add edx, ebx
mov ebx, eax
adc ebx, edi
sub edx, 1
sbb ebx, 0
push ecx
push ebx
push edx
call fcn.00732760
mov ecx, dword [ebp - 0x24]
push ecx
mov ecx, dword [ebp - 0x28]
push ecx
push edx
push eax
call fcn.00732720
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], edx
mov edx, dword [esi + 0x2a4]
shl edx, 2
push edx
call fcn.0072d250
add esp, 4
mov dword [esi + 0x2ac], eax
test eax, eax
jne 0x72d8db
push 0x1002df20
push eax
push 0xcc
push 0x1002eb40
call fcn.0072c9c0
add esp, 0x10
mov ecx, dword [esi + 0x2a4]
mov edi, dword [esi + 0x2ac]
shl ecx, 2
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
xor edi, edi
mov eax, dword [esi + 0x2a4]
mov dword [ebp + 8], edi
cmp edi, eax
jae 0x72d9ca
mov ecx, dword [esi + 0x2a8]
lea eax, [edi + edi*4]
push 8
lea edx, [ecx + eax*8]
lea eax, [ebp - 0x3c]
push edx
push eax
call dword [0x1002218c]
lea ecx, [ebp - 0x3c]
add esp, 0xc
test ecx, ecx
mov byte [ebp - 0x34], 0
jne 0x72d938
xor ebx, ebx
jmp 0x72d96e
lea edx, [ebp - 0x3c]
push edx
call dword [0x10022068]
mov edi, eax
inc edi
lea eax, [edi + edi]
add eax, 3
and al, 0xfc
call fcn.007323f0
mov ebx, esp
push edi
push ebx
lea eax, [ebp - 0x3c]
push 0xffffffffffffffff
push eax
push 0
push 0
mov word [ebx], 0
call dword [0x1002209c]
mov edi, dword [ebp + 8]
push ebx
call dword [0x100221a4]
lea ecx, [eax + eax + 2]
push ecx
call fcn.0072d250
mov edx, dword [esi + 0x2ac]
add esp, 8
mov dword [edx + edi*4], eax
mov eax, dword [esi + 0x2ac]
cmp dword [eax + edi*4], 0
jne 0x72d9b0
push 0x1002df20
push 0
push 0xd6
push 0x1002eb40
call fcn.0072c9c0
add esp, 0x10
mov ecx, dword [esi + 0x2ac]
push ebx
mov edx, dword [ecx + edi*4]
push edx
call dword [0x100221f8]
add esp, 8
inc edi
jmp 0x72d8fc
mov eax, dword [esi + 0x2a4]
shl eax, 2
push eax
call fcn.0072d250
xor edi, edi
add esp, 4
cmp eax, edi
mov dword [esi + 0x2b0], eax
jne 0x72da00
push 0x1002df20
push edi
push 0xdc
push 0x1002eb40
call fcn.0072c9c0
add esp, 0x10
mov ecx, esi
call fcn.0072f940
mov ecx, dword [esi + 0x2a4]
mov edx, dword [esi + 0x2b0]
mov eax, dword [edx + ecx*4 - 4]
mov ecx, dword [esi + 0x2a8]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*8 + 0x14]
lea eax, [ecx + eax*8]
mov ecx, dword [eax + 0x10]
xor eax, eax
add edx, ecx
mov ecx, dword [esi + 0x10]
sub ecx, edx
mov edx, dword [esi + 0x14]
sbb edx, eax
mov dword [esi + 0x2b8], ecx
mov eax, edx
mov dword [esi + 0x2bc], edx
cmp eax, edi
jg 0x72da60
jl 0x72da54
cmp dword [esi + 0x2b8], edi
jae 0x72da60
mov dword [esi + 0x2b8], edi
mov dword [esi + 0x2bc], edi
mov edi, 1
mov dword [esi + 0xa0], edi
jmp 0x72da87
test edi, edi
mov dword [ebp - 4], 0xffffffff
jne 0x72da99
mov ecx, esi
call fcn.0072dad0
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0x48]
mov eax, edi
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8