Function at 0x407210
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x28
push ebx
push ebp
push esi
mov esi, dword [esp + 0x38]
push edi
xor ebx, ebx
mov edx, dword [esi + 0x48]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], 0xfffffffd
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x1c], ebx
mov dword [esi + 0x18], ecx
mov dword [esp + 0x28], ebx
cmp byte [edx + ecx - 1], 0x2f
lea ecx, [esp + 0x2c]
lea edx, [esp + 0x10]
push ecx
mov ecx, dword [esi + 0x38]
push edx
sete al
mov dword [esp + 0x20], eax
lea eax, [esp + 0x1c]
push eax
push ecx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
call fcn.0040c7c0
mov ebp, eax
add esp, 0x10
cmp ebp, ebx
je 0x407941
mov eax, dword [esp + 0x10]
cmp eax, 0xfffffffd
je 0x407941
cmp eax, 0xfffffffe
jne 0x407300
mov dword [esp + 0x18], 1
mov dword [esp + 0x10], ebx
mov eax, dword [esi + 0x1c]
mov word [esi + 0x2a], 0xffff
cmp eax, ebx
mov dword [esi + 0x30], ebx
je 0x4072b6
mov eax, dword [esi + 0x3c]
push eax
call fcn.0040d38c
add esp, 4
cmp dword [esi + 0x20], ebx
je 0x4072ce
mov eax, dword [esi + 0x40]
mov ecx, dword [esi + 0x3c]
cmp ecx, eax
je 0x4072ce
push eax
call fcn.0040d38c
add esp, 4
mov dword [esi + 0x40], ebx
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x1c], ebx
mov eax, dword [0x41d25c]
mov dword [0x43a4e0], ebx
cmp eax, ebx
je 0x40731d
mov ecx, dword [esi + 0x38]
push eax
push ecx
call fcn.00407950
add esp, 8
test eax, eax
je 0x40731d
mov dword [esp + 0x3c], ebx
jmp 0x407327
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
shr edx, 4
and edx, 1
cmp eax, edx
je 0x40729a
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x28
ret
mov edx, dword [0x41d248]
mov dword [esp + 0x3c], edx
mov eax, dword [esi + 0x38]
mov edi, 0x41c790
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [edi]
jne 0x407353
test cl, cl
je 0x40734f
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [edi + 1]
jne 0x407353
add eax, 2
add edi, 2
test cl, cl
jne 0x40732f
xor eax, eax
jmp 0x407358
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x40738d
push ebx
mov dword [0x41f05c], ebx
call fcn.00411759
add esp, 4
test eax, eax
jne 0x40737d
push 0x8000
push ebx
call fcn.004164ab
add esp, 8
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
mov dword [esi + 8], ebp
jmp 0x407414
cmp dword [0x41d258], ebx
je 0x4073a3
lea eax, [esp + 0x2c]
push eax
push esi
call fcn.0040c9c0
add esp, 8
mov ecx, dword [esp + 0x14]
push ecx
call fcn.0040b460
mov edi, eax
add esp, 4
cmp edi, ebx
mov dword [esp + 0x28], edi
je 0x4073c6
mov dword [0x41f05c], 0xffffffff
jmp 0x407405
cmp dword [esp + 0x18], ebx
je 0x4073e4
xor eax, eax
xor edx, edx
mov dword [0x41f05c], 0xffffffff
mov dword [esp + 0x3c], eax
mov dword [esp + 0x10], edx
jmp 0x40740d
mov edx, dword [esi + 0x38]
push 0x40
push 0x8000
push edx
call fcn.0040ea75
add esp, 0xc
cmp eax, 0xffffffff
mov dword [0x41f05c], eax
je 0x407941
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x3c]
cmp edi, ebx
mov dword [esi + 8], ebp
jne 0x407418
cmp edx, ebx
jne 0x40741c
xor eax, eax
jmp 0x407426
cmp eax, 0xffffffff
jne 0x40742a
mov eax, 8
mov dword [esp + 0x3c], eax
mov edi, dword [esi + 0x58]
cmp edi, ebx
je 0x407443
mov ecx, dword [0x41f098]
neg ecx
sbb ecx, ecx
and ecx, 0xfffffffd
add ecx, 0x17
jmp 0x407448
mov ecx, 0xb17
mov word [esi], cx
mov ecx, eax
neg ecx
sbb ecx, ecx
mov dword [esi + 0xc], ebx
and ecx, 0xa
mov word [esi + 6], ax
add ecx, 0xa
cmp eax, ebx
mov word [esi + 2], cx
mov ecx, 8
mov word [esi + 4], cx
mov word [esi + 0x2c], cx
jne 0x40747b
cmp edx, ebx
jl 0x40747b
mov eax, edx
jmp 0x40747d
xor eax, eax
mov dword [esi + 0x10], eax
mov eax, edx
inc eax
mov word [esi + 0x28], bx
neg eax
sbb eax, eax
and eax, edx
cmp word [esi + 0x2a], 0xffff
mov dword [esi + 0x14], eax
jne 0x4074a4
mov word [esi + 0x2a], bx
mov dword [esp + 0x24], 1
cmp edi, ebx
je 0x4074b3
mov eax, dword [esp + 0x14]
and eax, 0xff
jmp 0x4074c1
mov eax, dword [esi + 0x30]
mov ecx, dword [esp + 0x14]
and eax, 0xff00
or eax, ecx
mov ebp, dword [esp + 0x40]
mov dword [esi + 0x30], eax
mov ecx, dword [0x46a550]
push ebp
push esi
mov dword [esi + 0x34], ecx
call fcn.004058d0
mov edi, eax
add esp, 8
cmp edi, ebx
je 0x4074fe
mov eax, dword [0x41f05c]
cmp eax, 0xffffffff
je 0x4074f4
push eax
call fcn.00410521
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov eax, dword [0x46a550]
add edx, ecx
mov bl, 0x20
lea ecx, [eax + edx + 0x1e]
mov dword [0x46a550], ecx
mov al, byte [ebp + 0xc]
test bl, al
je 0x407540
mov eax, dword [0x41f05c]
cmp eax, 0xffffffff
je 0x407531
push eax
call fcn.00410521
add esp, 4
push 0x41d07c
push 0xe
call section..text
add esp, 8
push ebp
call fcn.0040e717
mov dword [esp + 0x44], eax
mov al, byte [ebp + 0xc]
add esp, 4
test bl, al
je 0x40755d
push ebp
call fcn.0040ea30
add esp, 4
mov eax, dword [esp + 0x3c]
xor edi, edi
cmp eax, 8
mov dword [0x41f054], edi
mov dword [0x41ec48], edi
jne 0x4075c0
cmp dword [esp + 0x24], edi
je 0x407580
mov word [esi + 0x2a], 0xffff
lea edx, [esp + 0x3c]
push edx
push ebp
push esi
call fcn.00407b90
add esp, 0xc
cmp word [esi + 0x2a], di
mov dword [esp + 0x20], eax
jne 0x40764c
cmp dword [0x41f0a8], edi
je 0x40764c
push 0x41ec44
push 0x41d064
call fcn.00401340
add esp, 8
jmp 0x40764c
cmp dword [esp + 0x18], edi
jne 0x40764c
push 0x4000
call fcn.0040db38
mov edi, eax
xor ebx, ebx
add esp, 4
cmp edi, ebx
jne 0x4075ec
pop edi
pop esi
pop ebp
mov eax, 4
pop ebx
add esp, 0x28
ret
cmp dword [esp + 0x28], ebx
je 0x407767
mov eax, dword [0x41ec48]
push ebx
push edi
push eax
mov dword [esp + 0x28], ebx
call fcn.00409650
push ebp
push ebx
push 1
push edi
mov dword [0x41ec48], eax
call fcn.0040d777
add esp, 0x1c
test eax, eax
je 0x407633
push edi
call fcn.0040d38c
add esp, 4
mov eax, 0xa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov dword [0x41f054], ebx
push edi
call fcn.0040d38c
mov edx, dword [0x41f054]
add esp, 4
mov dword [esp + 0x20], edx
mov eax, dword [0x41f05c]
cmp eax, 0xffffffff
je 0x40768b
cmp dword [esp + 0x1c], 0xffffffff
jne 0x40767d
push 0x41d054
call fcn.0040d609
mov eax, dword [esi + 0x4c]
push eax
push 0x41d038
call fcn.00401340
mov eax, dword [0x41f05c]
add esp, 0xc
cmp eax, 0xffffffff
je 0x40768b
push eax
call fcn.00410521
add esp, 4
mov eax, dword [0x46a550]
mov ebx, dword [esp + 0x20]
mov ecx, dword [0x41ec48]
add eax, ebx
mov dword [0x46a550], eax
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], ebx
mov edx, dword [0x41f054]
push ebp
mov edi, eax
mov dword [esi + 0x14], edx
call fcn.0040b510
add esp, 4
test eax, eax
je 0x40783f
mov eax, dword [esi + 0x34]
push 0
push eax
push ebp
call fcn.0040d300
add esp, 0xc
test eax, eax
jne 0x40783f
mov edx, dword [esp + 0x40]
mov eax, edi
sub eax, edx
cmp eax, ebx
je 0x407706
mov ecx, dword [0x46a54c]
push eax
push ebx
push 0x41d024
push ecx
call fcn.0040d411
push 0x41d008
call fcn.00401330
add esp, 0x14
mov eax, dword [esp + 0x3c]
mov word [esi + 6], ax
neg eax
sbb eax, eax
and eax, 0xa
add eax, 0xa
mov word [esi + 2], ax
mov ax, word [esi + 4]
test al, 1
jne 0x40772d
and eax, 0xfff7
mov word [esi + 4], ax
mov dx, word [esi + 4]
push ebp
push esi
mov word [esi + 0x2c], dx
call fcn.004058d0
add esp, 8
test eax, eax
jne 0x407946
push eax
push edi
push ebp
call fcn.0040d300
add esp, 0xc
test eax, eax
je 0x40781e
pop edi
pop esi
pop ebp
mov eax, 0xb
pop ebx
add esp, 0x28
ret
push 0x4000
push edi
call fcn.00407a00
mov ebx, eax
add esp, 8
test ebx, ebx
mov dword [esp + 0x1c], ebx
jbe 0x407639
cmp ebx, 0xffffffff
je 0x407639
push ebp
push ebx
push 1
push edi
call fcn.0040d777
add esp, 0x10
cmp eax, ebx
jne 0x4077f5
mov eax, dword [0x41f09c]
test eax, eax
je 0x4077d8
mov eax, dword [0x41d7fc]
dec eax
mov dword [0x41d7fc], eax
js 0x4077c9
mov ecx, dword [0x41d7f8]
mov byte [ecx], 0x2e
mov eax, dword [0x41d7f8]
inc eax
mov dword [0x41d7f8], eax
jmp 0x4077d8
push 0x41d7f8
push 0x2e
call fcn.0040d91b
add esp, 8
push 0x4000
push edi
call fcn.00407a00
mov ebx, eax
add esp, 8
test ebx, ebx
mov dword [esp + 0x1c], ebx
ja 0x407783
jmp 0x407639
mov eax, dword [0x41f05c]
cmp eax, 0xffffffff
je 0x407808
push eax
call fcn.00410521
add esp, 4
push edi
call fcn.0040d38c
add esp, 4
mov eax, 0xa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
test byte [esi + 4], 1
je 0x40789d
push ebp
push esi
call fcn.00405df0
add esp, 8
test eax, eax
jne 0x407946
add dword [0x46a550], 0x10
jmp 0x40789d
mov ax, word [esi + 6]
cmp ax, word [esp + 0x3c]
je 0x407857
push 0x41cff0
call fcn.00401330
add esp, 4
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x407876
mov eax, dword [esp + 0x10]
test eax, eax
jge 0x407876
push 0x41cfbc
push 0x10
call section..text
add esp, 8
push ebp
push esi
call fcn.00405df0
add esp, 8
test eax, eax
jne 0x407946
mov eax, dword [0x46a550]
add eax, 0x10
mov dword [0x46a550], eax
mov cx, word [esi + 0x2c]
mov word [esi + 4], cx
mov eax, dword [esi + 0x1c]
xor edi, edi
cmp eax, edi
je 0x4078bf
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0x40]
cmp eax, ecx
je 0x4078bc
push eax
call fcn.0040d38c
add esp, 4
mov dword [esi + 0x3c], edi
mov dword [esi + 0x1c], edi
cmp dword [0x41d254], edi
je 0x407937
cmp dword [0x41f09c], edi
je 0x4078ea
mov edx, dword [0x41f054]
mov eax, dword [0x46a54c]
push ebx
push edx
push 0x41cfa8
push eax
call fcn.0040d411
add esp, 0x10
cmp dword [esp + 0x3c], 8
jne 0x407915
mov ecx, dword [0x41f054]
push ebx
push ecx
call fcn.004071c0
mov edx, dword [0x46a54c]
push eax
push 0x41cf94
push edx
call fcn.0040d411
add esp, 0x14
jmp 0x407928
mov eax, dword [0x46a54c]
push 0x41cf84
push eax
call fcn.0040d411
add esp, 8
mov ecx, dword [0x46a54c]
push ecx
call fcn.0040d4fc
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x28
ret
mov eax, 0x12
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret