Function at 0x404ef0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x120
push ebx
push ebp
mov ebp, dword [esp + 0x12c]
xor ecx, ecx
push esi
push edi
mov cl, byte [ebp + 0xff]
mov byte [esp + 0x20], 0
mov eax, dword [ecx*4 + 0x4226e0]
test eax, eax
jbe 0x404f65
mov ebx, dword [esp + 0x20]
xor eax, eax
lea esi, [ebp + 0xa]
push eax
push ecx
call fcn.004132b0
push esi
mov edi, eax
call fcn.0040ca50
and eax, 0xffff
add esp, 0xc
cmp eax, edi
je 0x404f7f
mov bl, byte [esp + 0x20]
xor ecx, ecx
mov cl, byte [ebp + 0xff]
inc bl
mov byte [esp + 0x20], bl
mov ebx, dword [esp + 0x20]
mov edx, dword [ecx*4 + 0x4226e0]
mov eax, ebx
and eax, 0xff
cmp eax, edx
jb 0x404f22
push 1
push ebp
mov byte [ebp + 8], 0x6e
call fcn.004041a0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret
movzx ax, byte [ebp + 1]
add eax, 2
and eax, 0xffff
mov al, byte [eax + ebp - 1]
cmp al, 0x14
mov byte [esp + 0x1c], al
jbe 0x404fb1
mov ecx, dword [esp + 0x1c]
push ecx
push ebp
call fcn.004082d0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret
mov ecx, 0x43
mov esi, ebp
lea edi, [esp + 0x24]
lea edx, [esp + 0x24]
push 1
push edx
rep movsd dword es:[edi], dword [esi]
mov byte [esp + 0x34], 7
call fcn.004041a0
push ebp
push ebx
call fcn.004077a0
add esp, 0x10
test al, al
jne 0x405176
push ebx
call fcn.0040f670
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
je 0x405176
xor ebp, ebp
test eax, eax
jle 0x405176
mov ecx, dword [0x4223c4]
mov edi, ebx
and edi, 0xff
shl edi, 2
mov edx, dword [edi + ecx]
mov esi, ebp
shl esi, 5
add edx, esi
mov byte [esp + 0x13], 0
cmp word [edx + 0x10], 0xffff
je 0x405034
cmp word [edx + 0xc], 0
je 0x405034
inc ebp
jmp 0x40516e
mov al, byte [edx + 0xa]
mov byte [esp + 0x14], 0xf
mov ebx, dword [esp + 0x14]
mov byte [esp + 0x30], al
mov edx, dword [edi + ecx]
xor eax, eax
mov al, byte [esi + edx + 0xb]
mov byte [esp + 0x32], 0
mov byte [esp + 0x31], al
jmp 0x40505e
mov ecx, dword [0x4223c4]
mov edx, dword [edi + ecx]
lea eax, [esi + edx]
mov dx, word [esi + edx + 0x10]
cmp dx, 0xffff
je 0x4051c9
cmp word [eax + 0xc], 0
je 0x405080
inc ebp
jmp 0x405110
mov ax, word [eax + 0xe]
push 0
push 0
push 0
push 0
push eax
push edx
call fcn.0040bbd0
and ebx, 0xff
mov ecx, dword [0x4223c4]
add esp, 0x18
mov byte [esp + ebx + 0x24], al
mov al, byte [esp + 0x14]
inc al
mov byte [esp + 0x14], al
mov ebx, dword [esp + 0x14]
mov dl, byte [esp + 0x13]
mov eax, dword [esp + 0x18]
inc ebp
inc dl
cmp ebp, eax
mov byte [esp + 0x13], dl
jge 0x405133
mov ecx, dword [edi + ecx]
mov esi, ebp
shl esi, 5
add ecx, esi
push ecx
call fcn.00405eb0
add esp, 4
cmp eax, 2
jne 0x405104
mov eax, dword [esp + 0x18]
inc ebp
add esi, 0x20
cmp ebp, eax
jge 0x405133
mov edx, dword [0x4223c4]
mov eax, dword [edi + edx]
add eax, esi
push eax
call fcn.00405eb0
add esp, 4
cmp eax, 2
je 0x4050df
cmp ebp, dword [esp + 0x18]
jge 0x405133
mov ecx, dword [0x4223c4]
mov ecx, dword [edi + ecx]
mov esi, ebp
shl esi, 5
add ecx, esi
push ecx
call fcn.00405eb0
add esp, 4
cmp eax, 1
jne 0x405133
cmp byte [esp + 0x14], 0x82
jb 0x405058
mov al, byte [esp + 0x14]
lea edx, [esp + 0x24]
sub al, 2
push 1
mov byte [esp + 0x29], al
mov al, byte [esp + 0x17]
or al, 0x80
push edx
mov byte [esp + 0x32], 1
mov byte [esp + 0x33], al
mov byte [esp + 0x34], 0x14
call fcn.004041a0
mov ecx, dword [0x4223c4]
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
add esp, 8
cmp ebp, eax
jl 0x405011
push ebx
call fcn.0040f6b0
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
je 0x405366
xor ebp, ebp
test eax, eax
jle 0x405366
mov ecx, dword [0x4223cc]
mov edi, ebx
and edi, 0xff
shl edi, 2
mov edx, dword [edi + ecx]
mov esi, ebp
shl esi, 5
add edx, esi
mov byte [esp + 0x13], 0
cmp word [edx + 0x10], 0xffff
je 0x40520a
cmp word [edx + 0xc], 0
je 0x40520a
inc ebp
jmp 0x40535e
mov dl, byte [eax + 0x12]
and ebx, 0xff
mov byte [esp + ebx + 0x24], dl
mov eax, dword [edi + ecx]
mov dl, byte [esp + 0x14]
add esi, eax
inc dl
mov al, byte [esi + 0x1c]
mov byte [esp + 0x14], dl
test al, al
je 0x4050b0
mov ebx, dword [esp + 0x14]
mov dl, byte [esi + 0x12]
mov eax, ebx
or dl, 0x80
and eax, 0xff
mov byte [esp + eax + 0x23], dl
jmp 0x4050b4
cmp dword [edx + 0x18], 0x10
jne 0x405216
inc ebp
jmp 0x40535e
mov al, byte [edx + 0xa]
mov byte [esp + 0x14], 0xf
mov ebx, dword [esp + 0x14]
mov byte [esp + 0x30], al
mov edx, dword [edi + ecx]
xor eax, eax
mov al, byte [esi + edx + 0xb]
mov byte [esp + 0x32], 0
mov byte [esp + 0x31], al
jmp 0x405240
mov ecx, dword [0x4223cc]
mov edx, dword [edi + ecx]
lea eax, [esi + edx]
mov edx, dword [esi + edx + 0x18]
cmp edx, 0x10
jne 0x405255
inc ebp
jmp 0x405300
mov dx, word [eax + 0x10]
cmp dx, 0xffff
je 0x4054b6
cmp word [eax + 0xc], 0
je 0x405270
inc ebp
jmp 0x405300
mov ax, word [eax + 0xe]
push 0
push 0
push 0
push 0
push eax
push edx
call fcn.0040bbd0
and ebx, 0xff
mov ecx, dword [0x4223cc]
add esp, 0x18
mov byte [esp + ebx + 0x24], al
mov al, byte [esp + 0x14]
inc al
mov byte [esp + 0x14], al
mov ebx, dword [esp + 0x14]
mov dl, byte [esp + 0x13]
mov eax, dword [esp + 0x18]
inc ebp
inc dl
cmp ebp, eax
mov byte [esp + 0x13], dl
jge 0x405323
mov ecx, dword [edi + ecx]
mov esi, ebp
shl esi, 5
add ecx, esi
push ecx
call fcn.00405eb0
add esp, 4
cmp eax, 2
jne 0x4052f4
mov eax, dword [esp + 0x18]
inc ebp
add esi, 0x20
cmp ebp, eax
jge 0x405323
mov edx, dword [0x4223cc]
mov eax, dword [edi + edx]
add eax, esi
push eax
call fcn.00405eb0
add esp, 4
cmp eax, 2
je 0x4052cf
cmp ebp, dword [esp + 0x18]
jge 0x405323
mov ecx, dword [0x4223cc]
mov ecx, dword [edi + ecx]
mov esi, ebp
shl esi, 5
add ecx, esi
push ecx
call fcn.00405eb0
add esp, 4
cmp eax, 1
jne 0x405323
cmp byte [esp + 0x14], 0x82
jb 0x40523a
mov al, byte [esp + 0x14]
lea edx, [esp + 0x24]
sub al, 2
push 1
mov byte [esp + 0x29], al
mov al, byte [esp + 0x17]
or al, 0x80
push edx
mov byte [esp + 0x32], 3
mov byte [esp + 0x33], al
mov byte [esp + 0x34], 0x14
call fcn.004041a0
mov ecx, dword [0x4223cc]
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 0x20]
add esp, 8
cmp ebp, eax
jl 0x4051a6
push ebx
call fcn.0040f6f0
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x40547e
xor esi, esi
test ebp, ebp
jle 0x40547e
mov eax, ebx
and eax, 0xff
shl eax, 2
mov dword [esp + 0x1c], eax
mov eax, dword [0x4223d4]
mov ecx, dword [esp + 0x1c]
add eax, ecx
lea ecx, [esi + esi*2]
shl ecx, 3
mov edx, dword [eax]
xor ebx, ebx
inc esi
mov dl, byte [ecx + edx + 6]
cmp esi, ebp
mov byte [esp + 0x30], dl
mov edx, dword [eax]
mov bl, byte [ecx + edx + 7]
mov byte [esp + 0x32], 0
mov byte [esp + 0x31], bl
mov edx, dword [eax]
mov bl, 0x11
mov cl, byte [ecx + edx + 0xa]
mov byte [esp + 0x34], 0
mov byte [esp + 0x33], cl
mov cl, 1
mov byte [esp + 0x14], bl
mov byte [esp + 0x13], cl
jge 0x40544b
lea edi, [esi + esi*2]
shl edi, 3
mov ecx, dword [eax]
mov edx, edi
add edx, ecx
push edx
call fcn.00405ef0
add esp, 4
test al, al
je 0x405447
cmp bl, 0xfa
jae 0x405447
mov eax, dword [0x4223d4]
mov ecx, dword [esp + 0x1c]
add eax, ecx
mov ecx, dword [esp + 0x14]
and ecx, 0xff
inc bl
mov edx, dword [eax]
mov byte [esp + 0x14], bl
mov dl, byte [edi + edx + 0xa]
add edi, 0x18
mov byte [esp + ecx + 0x24], dl
mov ecx, dword [esp + 0x14]
mov dl, byte [esp + 0x13]
and ecx, 0xff
inc bl
inc esi
inc dl
cmp esi, ebp
mov byte [esp + ecx + 0x24], 0
mov byte [esp + 0x14], bl
mov byte [esp + 0x13], dl
jl 0x4053e3
mov cl, byte [esp + 0x13]
lea edx, [esp + 0x24]
sub bl, 2
or cl, 0x80
push 1
push edx
mov byte [esp + 0x32], 5
mov byte [esp + 0x2d], bl
mov byte [esp + 0x33], cl
mov byte [esp + 0x34], 0x14
call fcn.004041a0
add esp, 8
cmp esi, ebp
jl 0x405391
mov ebx, dword [esp + 0x20]
push ebx
call fcn.0040f750
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
je 0x4055ee
xor edi, edi
test eax, eax
jle 0x4055ee
mov esi, dword [esp + 0x20]
mov ebp, dword [0x4223e4]
and esi, 0xff
shl esi, 2
mov dword [esp + 0x1c], esi
jmp 0x4054fb
mov dl, byte [eax + 0x12]
and ebx, 0xff
mov byte [esp + ebx + 0x24], dl
mov eax, dword [edi + ecx]
mov dl, byte [esp + 0x14]
add esi, eax
inc dl
mov al, byte [esi + 0x1c]
mov byte [esp + 0x14], dl
test al, al
je 0x4052a0
mov ebx, dword [esp + 0x14]
mov dl, byte [esi + 0x12]
mov eax, ebx
or dl, 0x80
and eax, 0xff
mov byte [esp + eax + 0x23], dl
jmp 0x4052a4
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi + ebp]
lea eax, [edi + edi*8]
shl eax, 2
xor ebx, ebx
xor dl, dl
mov cl, byte [eax + ecx + 6]
mov byte [esp + 0x30], cl
mov ecx, dword [esi + ebp]
mov bl, byte [eax + ecx + 7]
mov byte [esp + 0x32], dl
mov byte [esp + 0x31], bl
mov ecx, dword [esi + ebp]
mov bl, 0xf
cmp byte [ecx + eax + 0x1c], 0x15
mov byte [esp + 0x14], bl
jne 0x4055a6
mov esi, eax
movsx eax, word [esi + ecx + 8]
mov ecx, dword [esp + 0x14]
add esi, 0x24
and ecx, 0xff
inc bl
mov byte [esp + 0x14], bl
mov byte [esp + ecx + 0x24], al
mov ecx, dword [esp + 0x14]
and ecx, 0xff
sar eax, 8
inc bl
mov byte [esp + ecx + 0x24], al
mov eax, dword [esp + 0x18]
inc dl
inc edi
mov byte [esp + 0x14], bl
cmp edi, eax
mov byte [esp + 0x13], dl
jge 0x4055b3
mov eax, dword [esp + 0x1c]
mov edx, esi
add edx, dword [eax + ebp]
push edx
call fcn.00405f30
add esp, 4
test al, al
je 0x4055a9
cmp bl, 0xfa
jae 0x4055a9
mov ebp, dword [0x4223e4]
mov ecx, dword [esp + 0x1c]
mov dl, byte [esp + 0x13]
mov ecx, dword [ecx + ebp]
cmp byte [esi + ecx + 0x1c], 0x15
je 0x405531
inc edi
jmp 0x4055b3
mov ebp, dword [0x4223e4]
mov dl, byte [esp + 0x13]
test dl, dl
jbe 0x4055e4
or dl, 0x80
sub bl, 2
mov byte [esp + 0x2b], dl
lea edx, [esp + 0x24]
push 1
push edx
mov byte [esp + 0x32], 0x15
mov byte [esp + 0x2d], bl
mov byte [esp + 0x34], 0x14
call fcn.004041a0
mov ebp, dword [0x4223e4]
add esp, 8
cmp edi, dword [esp + 0x18]
jl 0x4054f7
mov eax, dword [esp + 0x20]
push eax
call fcn.0040f750
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
je 0x405736
xor ebp, ebp
test eax, eax
jle 0x405736
mov edi, dword [esp + 0x20]
mov ecx, dword [0x4223e4]
and edi, 0xff
shl edi, 2
mov edx, dword [edi + ecx]
lea esi, [ebp + ebp*8]
shl esi, 2
mov bl, 0xf
mov byte [esp + 0x13], 0
mov al, byte [esi + edx + 6]
mov byte [esp + 0x14], bl
mov byte [esp + 0x30], al
mov edx, dword [edi + ecx]
xor eax, eax
mov al, byte [esi + edx + 7]
mov byte [esp + 0x32], 0
mov byte [esp + 0x31], al
mov eax, dword [edi + ecx]
cmp byte [eax + esi + 0x1c], 0x15
je 0x4056ef
mov edx, dword [esp + 0x14]
movsx eax, word [esi + eax + 8]
and edx, 0xff
inc bl
mov byte [esp + 0x14], bl
add esi, 0x24
mov byte [esp + edx + 0x24], al
mov edx, dword [esp + 0x14]
sar eax, 8
and edx, 0xff
inc bl
mov byte [esp + 0x14], bl
mov byte [esp + edx + 0x24], al
mov eax, dword [edi + ecx]
mov edx, dword [esp + 0x14]
mov al, byte [esi + eax - 0x1a]
and edx, 0xff
inc bl
mov byte [esp + edx + 0x24], al
mov dl, byte [esp + 0x13]
mov eax, dword [esp + 0x18]
inc dl
inc ebp
mov byte [esp + 0x14], bl
cmp ebp, eax
mov byte [esp + 0x13], dl
jge 0x4056f8
mov eax, dword [edi + ecx]
mov edx, esi
add edx, eax
push edx
call fcn.00405f30
add esp, 4
test al, al
je 0x4056f2
cmp bl, 0xfa
jae 0x4056f2
mov ecx, dword [0x4223e4]
mov eax, dword [edi + ecx]
cmp byte [esi + eax + 0x1c], 0x15
jne 0x405661
inc ebp
jmp 0x4056f8
mov ecx, dword [0x4223e4]
mov al, byte [esp + 0x13]
test al, al
jbe 0x40572c
or al, 0x80
sub bl, 2
mov byte [esp + 0x2b], al
lea eax, [esp + 0x24]
push 1
push eax
mov byte [esp + 0x32], 9
mov byte [esp + 0x2d], bl
mov byte [esp + 0x34], 0x14
call fcn.004041a0
mov ecx, dword [0x4223e4]
add esp, 8
cmp ebp, dword [esp + 0x18]
jl 0x405624
mov edi, dword [esp + 0x20]
push edi
call fcn.0040f770
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x405882
xor esi, esi
test ebp, ebp
jle 0x405882
and edi, 0xff
shl edi, 2
mov dword [esp + 0x1c], edi
mov ecx, dword [0x4223e8]
xor ebx, ebx
mov edx, dword [edi + ecx]
lea eax, [edi + ecx]
lea ecx, [esi + esi*8]
shl ecx, 2
mov dl, byte [ecx + edx + 6]
mov byte [esp + 0x30], dl
mov edx, dword [eax]
mov bl, byte [ecx + edx + 7]
mov byte [esp + 0x32], 0
mov byte [esp + 0x31], bl
mov edx, dword [eax]
mov bl, 0x12
movsx edx, word [ecx + edx + 8]
mov byte [esp + 0x33], dl
mov byte [esp + 0x14], bl
sar edx, 8
mov byte [esp + 0x34], dl
mov edx, dword [eax]
inc esi
mov cl, byte [ecx + edx + 0xa]
cmp esi, ebp
mov byte [esp + 0x35], cl
mov cl, 1
mov byte [esp + 0x13], cl
jge 0x405853
lea edi, [esi + esi*8]
shl edi, 2
mov ecx, dword [eax]
mov edx, edi
add edx, ecx
push edx
call fcn.00405f30
add esp, 4
test al, al
je 0x40584b
cmp bl, 0xfa
jae 0x40584b
mov eax, dword [0x4223e8]
mov ecx, dword [esp + 0x1c]
add eax, ecx
add edi, 0x24
mov edx, dword [eax]
movsx ecx, word [edi + edx - 0x1c]
mov edx, dword [esp + 0x14]
and edx, 0xff
inc bl
mov byte [esp + 0x14], bl
mov byte [esp + edx + 0x24], cl
mov edx, dword [esp + 0x14]
sar ecx, 8
and edx, 0xff
inc bl
mov byte [esp + 0x14], bl
mov byte [esp + edx + 0x24], cl
mov ecx, dword [eax]
mov edx, dword [esp + 0x14]
mov cl, byte [edi + ecx - 0x1a]
and edx, 0xff
inc bl
inc esi
mov byte [esp + edx + 0x24], cl
mov dl, byte [esp + 0x13]
inc dl
cmp esi, ebp
mov byte [esp + 0x14], bl
mov byte [esp + 0x13], dl
jl 0x4057c6
mov cl, byte [esp + 0x13]
mov edi, dword [esp + 0x1c]
lea edx, [esp + 0x24]
sub bl, 2
or cl, 0x80
push 1
push edx
mov byte [esp + 0x32], 0xb
mov byte [esp + 0x2d], bl
mov byte [esp + 0x33], cl
mov byte [esp + 0x34], 0x14
call fcn.004041a0
add esp, 8
cmp esi, ebp
jl 0x405764
mov edi, dword [esp + 0x20]
push edi
call fcn.0040f790
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x405994
xor esi, esi
test ebp, ebp
jle 0x405994
and edi, 0xff
shl edi, 2
mov dword [esp + 0x1c], edi
mov eax, dword [0x4223ec]
mov ecx, dword [esp + 0x1c]
add eax, ecx
lea ecx, [esi + esi*4]
shl ecx, 3
mov edx, dword [eax]
xor ebx, ebx
inc esi
mov dl, byte [edx + ecx + 6]
cmp esi, ebp
mov byte [esp + 0x30], dl
mov edx, dword [eax]
mov bl, byte [edx + ecx + 7]
mov byte [esp + 0x32], 0
mov byte [esp + 0x31], bl
mov edx, dword [eax]
mov bl, 0x14
fld dword [edx + ecx + 0xc]
fstp dword [esp + 0x33]
mov edx, dword [eax]
mov byte [esp + 0x14], bl
mov cl, byte [edx + ecx + 8]
mov byte [esp + 0x37], cl
mov cl, 1
mov byte [esp + 0x13], cl
jge 0x405965
lea edi, [esi + esi*4]
shl edi, 3
mov ecx, dword [eax]
mov edx, edi
add edx, ecx
push edx
call fcn.00405f50
add esp, 4
test al, al
je 0x405961
cmp bl, 0xfa
jae 0x405961
mov eax, dword [0x4223ec]
mov ecx, dword [esp + 0x1c]
add eax, ecx
mov ecx, dword [esp + 0x14]
and ecx, 0xff
add bl, 5
mov edx, dword [eax]
inc esi
mov byte [esp + 0x14], bl
fld dword [edi + edx + 0xc]
fstp dword [esp + ecx + 0x24]
mov edx, dword [eax]
add edi, 0x28
mov dl, byte [edi + edx - 0x20]
mov byte [esp + ecx + 0x28], dl
mov dl, byte [esp + 0x13]
inc dl
cmp esi, ebp
mov byte [esp + 0x13], dl
jl 0x405907
mov cl, byte [esp + 0x13]
lea eax, [esp + 0x24]
sub bl, 2
or cl, 0x80
push 1
push eax
mov byte [esp + 0x32], 0xd
mov byte [esp + 0x2d], bl
mov byte [esp + 0x33], cl
mov byte [esp + 0x34], 0x14
call fcn.004041a0
add esp, 8
cmp esi, ebp
jl 0x4058b0
mov eax, dword [esp + 0x134]
push 1
push eax
mov byte [eax + 8], 0xa
call fcn.004041a0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x120
ret