Function at 0x40d4c0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x2c
push ebx
push ebp
mov ebp, dword [esp + 0x40]
push esi
mov esi, dword [esp + 0x48]
imul esi, esi, 0x54
push esi
push ebp
call fcn.0040a6f0
xor ebx, ebx
add esp, 8
mov dword [esp + 0xc], eax
cmp eax, ebx
jne 0x40d511
mov eax, dword [esp + 0x40]
push eax
call fcn.0040cc20
mov ecx, dword [str.HY000]
mov edx, dword [esp + 0x40]
push ecx
push 0x7d8
push edx
call fcn.0040c440
add esp, 0x10
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2c
ret
push edi
push esi
push ebx
push eax
call sub.MSVCR90.dll_memset
mov eax, dword [esp + 0x60]
add esp, 0xc
test eax, 0x200
je 0x40d70b
mov eax, dword [esp + 0x44]
mov edi, dword [eax]
cmp edi, ebx
je 0x40d845
mov ecx, dword [esp + 0x10]
mov eax, 0xffffffec
sub eax, ecx
lea esi, [ecx + 0x14]
mov dword [esp + 0x14], eax
jmp 0x40d558
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
lea edx, [esi - 0x14]
cmp edx, ecx
jb 0x40d701
lea ecx, [eax + esi]
mov eax, 0x30c30c31
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, dword [esp + 0x4c]
jae 0x40d701
mov edx, dword [edi + 4]
xor ecx, ecx
cmp byte [esp + 0x50], cl
lea eax, [esp + 0x18]
setne cl
add ecx, 7
push ecx
push edx
push eax
call fcn.0040d470
mov ecx, dword [edi + 4]
mov ebx, dword [esp + 0x24]
mov edx, dword [ecx]
push ebx
push edx
push ebp
call fcn.0040a980
mov dword [esi], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [edi + 4]
mov edx, dword [ecx + 4]
push eax
push edx
push ebp
call fcn.0040a980
mov dword [esi - 4], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [edi + 4]
mov edx, dword [ecx + 8]
push eax
push edx
push ebp
call fcn.0040a980
mov dword [esi - 0xc], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [edi + 4]
mov edx, dword [ecx + 0xc]
push eax
push edx
push ebp
call fcn.0040a980
mov dword [esi - 8], eax
mov eax, dword [esp + 0x64]
mov ecx, dword [edi + 4]
mov edx, dword [ecx + 0x10]
push eax
push edx
push ebp
call fcn.0040a980
mov dword [esi - 0x14], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [edi + 4]
mov edx, dword [ecx + 0x14]
add esp, 0x48
push eax
push edx
push ebp
call fcn.0040a980
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov dword [esi - 0x10], eax
mov eax, dword [esp + 0x28]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x34]
mov dword [esi + 0x18], ecx
mov ecx, dword [esp + 0x38]
add esp, 0xc
cmp dword [esp + 0x30], 0xc
mov dword [esi + 0x24], ebx
mov dword [esi + 0x1c], edx
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ecx
jne 0x40d6df
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x18]
movzx ecx, word [eax]
mov dword [esi + 0x34], ecx
mov edx, dword [eax + 2]
mov dword [esi + 8], edx
movzx ecx, byte [eax + 6]
mov dword [esi + 0x38], ecx
movzx edx, word [eax + 7]
mov dword [esi + 0x2c], edx
movzx eax, byte [eax + 9]
mov dword [esi + 0x30], eax
mov eax, ecx
cmp eax, 9
jg 0x40d682
cmp eax, 7
jne 0x40d68e
cmp eax, 0xd
je 0x40d68e
cmp eax, 0xf6
jne 0x40d695
or dword [esi + 0x2c], 0x8000
cmp byte [esp + 0x50], 0
je 0x40d6bf
mov eax, dword [edi + 4]
cmp dword [eax + 0x1c], 0
je 0x40d6bf
mov ebx, dword [esp + 0x34]
mov ecx, dword [eax + 0x1c]
push ebx
push ecx
push ebp
call fcn.0040a980
add esp, 0xc
mov dword [esi + 4], eax
mov dword [esi + 0x28], ebx
jmp 0x40d6c6
mov dword [esi + 4], 0
mov dword [esi + 0xc], 0
mov edi, dword [edi]
add esi, 0x54
test edi, edi
jne 0x40d550
jmp 0x40d845
mov edx, dword [esp + 0x44]
push edx
call fcn.0040cc20
mov eax, dword [str.HY000]
mov ecx, dword [esp + 0x44]
push eax
push 0x7eb
push ecx
call fcn.0040c440
add esp, 0x10
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2c
ret
mov edx, dword [esp + 0x44]
mov edi, dword [edx]
cmp edi, ebx
je 0x40d845
mov esi, dword [esp + 0x10]
xor ecx, ecx
cmp byte [esp + 0x50], cl
setne cl
and eax, 4
mov dword [esp + 0x14], eax
add ecx, 5
mov dword [esp + 0x4c], ecx
add esi, 0xc
mov edx, dword [esp + 0x4c]
mov eax, dword [edi + 4]
push edx
push eax
lea ecx, [esp + 0x20]
push ecx
call fcn.0040d470
mov edx, dword [edi + 4]
mov eax, dword [edx]
push eax
push ebp
call fcn.0040a9f0
mov dword [esi - 4], eax
mov dword [esi], eax
mov ecx, dword [edi + 4]
mov edx, dword [ecx + 4]
push edx
push ebp
call fcn.0040a9f0
mov dword [esi - 0xc], eax
mov eax, dword [edi + 4]
mov eax, dword [eax + 8]
movzx ecx, byte [eax + 2]
movzx edx, byte [eax + 1]
movzx eax, byte [eax]
shl ecx, 8
add ecx, edx
shl ecx, 8
add ecx, eax
mov dword [esi + 0x10], ecx
mov ecx, dword [edi + 4]
mov edx, dword [ecx + 0xc]
movzx eax, byte [edx]
mov ecx, dword [esp + 0x38]
mov dword [esi + 0x40], eax
mov eax, 0x4911c7
mov dword [esi + 8], eax
mov dword [esi + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x28], ebx
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x18], ecx
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x10]
add esp, 0x1c
cmp dword [esp + 0x14], ebx
je 0x40d7d8
movzx ecx, word [eax]
mov dword [esi + 0x34], ecx
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x10]
movzx ecx, byte [eax + 2]
jmp 0x40d7e8
movzx ecx, byte [eax]
mov dword [esi + 0x34], ecx
mov edx, dword [edi + 4]
mov eax, dword [edx + 0x10]
movzx ecx, byte [eax + 1]
mov eax, dword [esi + 0x40]
cmp eax, 9
mov dword [esi + 0x38], ecx
jg 0x40d7f8
cmp eax, 7
jne 0x40d804
cmp eax, 0xd
je 0x40d804
cmp eax, 0xf6
jne 0x40d80b
or dword [esi + 0x34], 0x8000
cmp byte [esp + 0x50], bl
je 0x40d832
mov eax, dword [edi + 4]
cmp dword [eax + 0x14], ebx
je 0x40d832
mov edx, dword [eax + 0x14]
push edx
push ebp
call fcn.0040a9f0
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x34]
add esp, 8
mov dword [esi + 0x30], eax
jmp 0x40d835
mov dword [esi + 0xc], ebx
mov dword [esi + 0x14], ebx
mov edi, dword [edi]
add esi, 0x54
cmp edi, ebx
jne 0x40d737
mov ecx, dword [esp + 0x44]
push ecx
call fcn.0040cc20
mov eax, dword [esp + 0x14]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret