Function at 0x403c92
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5c
mov dword [ebp - 0x3c], 0x17
mov dword [ebp - 0x50], 0x1000
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x24], 0xc
mov dword [ebp - 0x2c], 0xfd270f56
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x34], 0x40
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x10], 0x5a36
mov dword [ebp - 4], 0x4539
mov dword [ebp - 0xc], 0x1fe9
mov dword [ebp - 0x48], 0x29
mov dword [ebp - 0x30], 0x4c47c159
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0x44]
movzx edx, word [ecx]
mov dword [ebp - 0x14], edx
cmp dword [ebp - 0x2c], 0xfd270f58
jb 0x403e86
push eax
sub word [ebp - 0x54], 0x4ad0
call dword [ebp + 0x1c]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x2c], 0xfd270f58
jb 0x403e07
or byte [ebp - 0x54], 0xcc
call dword [ebp + 0x1c]
add byte [ebp - 0x54], 0x81
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx + 0x3c]
mov eax, dword [ebp - 0x4c]
add edx, dword [eax + 0x54]
push edx
mov ecx, dword [ebp - 0x44]
xor dword [ebp - 0x54], 0x151a4149
push ecx
mov edx, dword [ebp - 0x1c]
sub word [ebp - 0x54], 0xc43a
push edx
and word [ebp - 0x54], 0x6768
call fcn.004032f3
add esp, 0xc
add dword [ebp - 0x54], 0x90960fbc
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp - 0x1c]
add edx, dword [ecx + 0x3c]
mov eax, dword [ebp - 0x28]
sub word [ebp - 0x54], 0x1029
mov dword [eax], edx
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x20]
mov dword [edx + 0x34], eax
mov ecx, dword [ebp + 0x1c]
push ecx
mov edx, dword [ebp - 0x28]
add word [ebp - 0x54], 0x13e4
push edx
cmp dword [ebp - 0x2c], 0xfd270f58
jb 0x403dab
sub byte [ebp - 0x54], 0x95
mov eax, dword [ebp - 0x4c]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004039a0
add esp, 0x10
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x30], ecx
mov ecx, ecx
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x30]
add dword [ebp - 0x54], 0x337706f6
sub edx, dword [ecx + 0x34]
mov dword [ebp - 0x30], edx
mov ecx, ecx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 8], ecx
add word [ebp - 0x54], 0xf5b1
cmp dword [ebp - 8], 0
je 0x403f29
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x28]
push edx
xor byte [ebp - 0x54], 0x40
cmp dword [ebp - 0x2c], 0xfd270f58
jb 0x403f21
add byte [ebp - 0x54], 0x7b
mov dword [ebp - 0x1c], eax
push dword [ebp - 0x34]
push dword [ebp - 0x50]
and dword [ebp - 0x54], 0xbb274aeb
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ecx + 0x54]
push edx
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x2c], 0xfd270f58
jb 0x403f3f
mov dword [ebp - 0x18], eax
push dword [ebp - 0x18]
call dword [ebp + 0x28]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x20]
mov dword [ecx + 4], edx
mov ecx, dword [ebp - 0x28]
mov dword [ecx + 8], 0
and byte [ebp - 0x54], 0xbf
push dword [ebp - 0x34]
push dword [ebp - 0x50]
xor byte [ebp - 0x54], 0xe7
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ecx + 0x50]
push edx
mov eax, dword [ebp - 0x20]
sub word [ebp - 0x54], 0xd305
cmp dword [ebp - 0x2c], 0xfd270f58
jb 0x403d0f
add dword [ebp - 0x54], 0x8f5f7040
mov ecx, dword [ebp - 0x44]
movzx edx, word [ecx]
cmp edx, 0x5a4d
je 0x403e9c
mov eax, dword [ebp - 0x38]
jmp 0x403fc6
mov ecx, dword [ebp - 0x44]
mov edx, dword [ebp + 8]
add edx, dword [ecx + 0x3c]
mov dword [ebp - 0x4c], edx
mov ecx, dword [ebp - 0x4c]
cmp dword [ecx], 0x4550
je 0x403ebb
mov eax, dword [ebp - 0x38]
jmp 0x403fc6
cmp dword [ebp - 0x20], 0
jne 0x403f05
mov ecx, dword [ebp - 0x48]
add ecx, dword [ebp - 0x3c]
push ecx
and byte [ebp - 0x54], 0xca
mov edx, dword [ebp - 0xc]
add byte [ebp - 0x54], 0x32
add edx, dword [ebp - 0x3c]
push edx
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax + 0x50]
push ecx
and word [ebp - 0x54], 0x3099
mov edx, dword [ebp - 0x30]
sub edx, 0x4c47c159
push edx
call dword [ebp + 0x1c]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x403f05
mov eax, dword [ebp - 0x38]
jmp 0x403fc6
push dword [ebp - 0x24]
push dword [ebp - 0x40]
call dword [ebp + 0x34]
xor word [ebp - 0x54], 0x44d9
cmp dword [ebp - 0x2c], 0xfd270f58
jb 0x403e32
call fcn.00403fca
add esp, 8
mov ecx, dword [ebp + 0x38]
push ecx
mov edx, dword [ebp + 0x30]
or word [ebp - 0x54], 0x6651
cmp dword [ebp - 0x2c], 0xfd270f58
jb 0x403f4d
push eax
cmp dword [ebp - 0x2c], 0xfd270f58
jb 0x403d2d
push edx
add byte [ebp - 0x54], 0xc4
mov eax, dword [ebp - 0x28]
push eax
call fcn.00403ac4
mov dword [ebp - 0x18], eax
add esp, 0xc
cmp eax, 0
jne 0x403f68
jmp 0x403fa5
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
cmp dword [edx + 0x28], 0
je 0x403f7d
mov ecx, dword [ebp - 0x28]
mov dword [ecx + 8], 1
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp - 0x20]
mov dword [ecx], edx
mov ecx, dword [ebp - 0x28]
mov edx, dword [ecx]
mov eax, dword [ebp + 0xc]
add eax, dword [edx + 0x28]
mov ecx, dword [ebp + 0x18]
mov dword [ecx], eax
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp - 0x4c]
mov eax, dword [edx + 0x50]
mov dword [ecx], eax
mov eax, dword [ebp - 0x28]
jmp 0x403fc6
mov ecx, dword [ebp + 0x34]
push ecx
mov edx, dword [ebp + 0x24]
push edx
add word [ebp - 0x54], 0xda26
mov eax, dword [ebp + 0x2c]
push eax
mov ecx, dword [ebp - 0x28]
push ecx
call fcn.00404121
add esp, 0x10
mov eax, dword [ebp - 0x38]
mov esp, ebp
pop ebp
ret