Function at 0x4042b0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x94
push ebx
push ebp
mov ebp, dword [esp + 0xa4]
mov eax, edx
mov dword [esp + 0x90], eax
push esi
push edi
mov edi, ecx
cmp ebp, 0xa
jae 0x4042e1
mov eax, 0xffffffec
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret
mov esi, dword [esp + 0xa8]
add eax, edi
mov ebx, dword [esp + 0xb0]
mov ecx, esi
mov dword [esp + 0x94], eax
add eax, 0xfffffffd
mov dword [esp + 0x2c], eax
call fcn.00401080
movzx eax, ax
lea ecx, [esi + 2]
mov dword [esp + 0x1c], eax
call fcn.00401080
movzx eax, ax
lea ecx, [esi + 4]
mov dword [esp + 0x10], eax
call fcn.00401080
movzx eax, ax
mov ecx, ebp
sub ecx, eax
mov dword [esp + 0x90], eax
sub ecx, dword [esp + 0x10]
add esi, 6
mov eax, dword [esp + 0x1c]
sub ecx, eax
add eax, esi
mov dword [esp + 0x9c], esi
mov dword [esp + 0xa0], eax
sub ecx, 6
add eax, dword [esp + 0x10]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x98]
add eax, 3
mov dword [esp + 0x34], ecx
shr eax, 2
lea edx, [eax + edi]
lea esi, [edx + eax]
mov dword [esp + 0x30], edx
add eax, esi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x88], eax
mov ebp, eax
mov dword [esp + 0x14], eax
mov eax, dword [ebx]
shr eax, 0x10
movzx eax, al
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x18], eax
cmp ecx, dword [esp + 0xac]
ja 0x4042d1
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x38]
mov edx, dword [esp + 0x9c]
push eax
call fcn.00401090
add esp, 4
cmp eax, 0xffffff88
ja 0x404dde
push dword [esp + 0x10]
mov edx, dword [esp + 0xa4]
lea ecx, [esp + 0x50]
call fcn.00401090
add esp, 4
cmp eax, 0xffffff88
ja 0x404dde
push dword [esp + 0x90]
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x64]
call fcn.00401090
add esp, 4
cmp eax, 0xffffff88
ja 0x404dde
mov eax, dword [esp + 0x90]
lea ecx, [esp + 0x74]
mov edx, dword [esp + 0x20]
push dword [esp + 0x34]
lea edx, [edx + eax]
call fcn.00401090
add esp, 4
cmp eax, 0xffffff88
ja 0x404dde
mov eax, 0x1f
mov edx, ebp
sub eax, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
cmp edx, dword [esp + 0x2c]
jae 0x404627
lea edx, [eax + 1]
and edx, 0x1f
mov dword [esp + 0x14], edx
nop word [eax + eax]
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
and ecx, 0x1f
shl eax, cl
mov ecx, edx
shr eax, cl
lea ecx, [ebx + eax*4]
movzx eax, word [ecx + 4]
mov word [edi], ax
movzx eax, byte [ecx + 6]
add dword [esp + 0x3c], eax
movzx eax, byte [ecx + 7]
mov ecx, dword [esp + 0x50]
add edi, eax
mov eax, dword [esp + 0x4c]
and ecx, 0x1f
shl eax, cl
mov ecx, edx
shr eax, cl
mov edx, dword [esp + 0x28]
lea ecx, [ebx + eax*4]
movzx eax, word [ecx + 4]
mov word [edx], ax
movzx eax, byte [ecx + 6]
add dword [esp + 0x50], eax
movzx eax, byte [ecx + 7]
mov ecx, dword [esp + 0x64]
add edx, eax
mov eax, dword [esp + 0x60]
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x14]
shr eax, cl
lea ecx, [ebx + eax*4]
movzx eax, word [ecx + 4]
mov word [esi], ax
movzx eax, byte [ecx + 6]
add dword [esp + 0x64], eax
movzx eax, byte [ecx + 7]
mov ecx, dword [esp + 0x78]
add esi, eax
mov eax, dword [esp + 0x74]
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x14]
shr eax, cl
lea ecx, [ebx + eax*4]
movzx eax, word [ecx + 4]
mov word [ebp], ax
movzx eax, byte [ecx + 6]
add dword [esp + 0x78], eax
movzx eax, byte [ecx + 7]
mov ecx, dword [esp + 0x3c]
add ebp, eax
mov eax, dword [esp + 0x38]
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x14]
shr eax, cl
lea ecx, [ebx + eax*4]
movzx eax, word [ecx + 4]
mov word [edi], ax
movzx eax, byte [ecx + 6]
add dword [esp + 0x3c], eax
movzx eax, byte [ecx + 7]
mov ecx, dword [esp + 0x50]
add edi, eax
mov eax, dword [esp + 0x4c]
and ecx, 0x1f
shl eax, cl
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x14]
mov ecx, edi
shr eax, cl
lea ecx, [ebx + eax*4]
movzx eax, word [ecx + 4]
mov word [edx], ax
movzx eax, byte [ecx + 6]
add dword [esp + 0x50], eax
movzx eax, byte [ecx + 7]
add edx, eax
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
and ecx, 0x1f
shl eax, cl
mov ecx, edi
shr eax, cl
mov dword [esp + 0x28], edx
lea ecx, [ebx + eax*4]
movzx eax, word [ecx + 4]
mov word [esi], ax
movzx eax, byte [ecx + 6]
add dword [esp + 0x64], eax
movzx eax, byte [ecx + 7]
mov ecx, dword [esp + 0x78]
add esi, eax
mov eax, dword [esp + 0x74]
and ecx, 0x1f
shl eax, cl
mov ecx, edi
shr eax, cl
mov dword [esp + 0x24], esi
lea ecx, [ebx + eax*4]
movzx eax, word [ecx + 4]
mov word [ebp], ax
movzx eax, byte [ecx + 6]
add dword [esp + 0x78], eax
movzx eax, byte [ecx + 7]
lea ecx, [esp + 0x74]
add ebp, eax
call fcn.004011d0
neg eax
lea ecx, [esp + 0x60]
sbb edi, edi
inc edi
call fcn.004011d0
neg eax
lea ecx, [esp + 0x4c]
sbb esi, esi
inc esi
and esi, edi
call fcn.004011d0
xor edi, edi
lea ecx, [esp + 0x38]
test eax, eax
cmove edi, esi
call fcn.004011d0
mov esi, dword [esp + 0x24]
neg eax
mov edx, dword [esp + 0x14]
sbb ecx, ecx
inc ecx
and ecx, edi
cmp ebp, dword [esp + 0x2c]
mov edi, dword [esp + 0x20]
sbb eax, eax
test ecx, eax
jne 0x404460
mov edx, dword [esp + 0x88]
mov dword [esp + 0x14], ebp
mov eax, dword [esp + 0x30]
cmp edi, eax
ja 0x4042d1
mov ecx, dword [esp + 0x8c]
cmp dword [esp + 0x28], ecx
ja 0x4042d1
cmp esi, edx
ja 0x4042d1
add eax, 0xfffffffd
lea ecx, [esp + 0x38]
mov dword [esp + 0x20], eax
call fcn.00401200
neg eax
sbb ecx, ecx
inc ecx
cmp edi, dword [esp + 0x20]
sbb eax, eax
neg eax
test eax, ecx
mov eax, dword [esp + 0x1c]
je 0x4046f7
mov esi, dword [esp + 0x20]
inc eax
mov ebp, eax
mov dword [esp + 0x10], eax
and ebp, 0x1f
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
and ecx, 0x1f
shl eax, cl
mov ecx, ebp
shr eax, cl
lea edx, [ebx + eax*4]
movzx eax, word [edx + 4]
mov word [edi], ax
movzx ecx, byte [edx + 6]
add ecx, dword [esp + 0x3c]
movzx eax, byte [edx + 7]
add edi, eax
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x38]
and ecx, 0x1f
shl eax, cl
mov ecx, ebp
shr eax, cl
lea ecx, [ebx + eax*4]
movzx eax, word [ecx + 4]
mov word [edi], ax
movzx eax, byte [ecx + 6]
add dword [esp + 0x3c], eax
movzx eax, byte [ecx + 7]
lea ecx, [esp + 0x38]
add edi, eax
call fcn.00401200
neg eax
sbb ecx, ecx
inc ecx
cmp edi, esi
sbb eax, eax
neg eax
test eax, ecx
jne 0x404683
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
jmp 0x4046fc
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x38]
add eax, 0xfffffffe
mov dword [esp + 0x1c], eax
call fcn.00401200
mov edx, dword [esp + 0x1c]
neg eax
sbb ecx, ecx
inc ecx
cmp edx, edi
sbb eax, eax
inc eax
test eax, ecx
mov eax, dword [esp + 0x18]
je 0x404785
neg eax
mov esi, edx
mov ebp, eax
mov dword [esp + 0x18], eax
and ebp, 0x1f
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
and ecx, 0x1f
shl eax, cl
mov ecx, ebp
shr eax, cl
lea ecx, [ebx + eax*4]
mov ax, word [ecx + 4]
mov word [edi], ax
movzx eax, byte [ecx + 6]
add dword [esp + 0x3c], eax
movzx eax, byte [ecx + 7]
lea ecx, [esp + 0x38]
add edi, eax
call fcn.00401200
neg eax
sbb ecx, ecx
inc ecx
cmp esi, edi
sbb eax, eax
inc eax
test eax, ecx
jne 0x404733
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
jmp 0x40478b
neg eax
mov dword [esp + 0x18], eax
cmp edi, edx
mov edx, dword [esp + 0x3c]
ja 0x4047d9
mov ebp, dword [esp + 0x1c]
and eax, 0x1f
mov dword [esp + 0x34], eax
mov esi, eax
mov eax, dword [esp + 0x38]
and edx, 0x1f
mov ecx, edx
shl eax, cl
mov ecx, esi
shr eax, cl
lea ecx, [ebx + eax*4]
mov ax, word [ecx + 4]
mov word [edi], ax
movzx eax, byte [ecx + 6]
mov edx, dword [esp + 0x3c]
add edx, eax
movzx eax, byte [ecx + 7]
add edi, eax
mov dword [esp + 0x3c], edx
cmp edi, ebp
jbe 0x4047a0
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
cmp edi, dword [esp + 0x30]
jae 0x404829
mov eax, dword [esp + 0x38]
and edx, 0x1f
mov ecx, edx
shl eax, cl
mov ecx, dword [esp + 0x10]
and ecx, 0x1f
shr eax, cl
lea edx, [ebx + eax*4]
mov al, byte [edx + 4]
mov byte [edi], al
cmp byte [edx + 7], 1
jne 0x40480b
movzx eax, byte [edx + 6]
add dword [esp + 0x3c], eax
jmp 0x404829
mov ecx, dword [esp + 0x3c]
cmp ecx, 0x20
jae 0x404829
movzx eax, byte [edx + 6]
add ecx, eax
mov eax, 0x20
cmp ecx, 0x20
cmova ecx, eax
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x8c]
lea ecx, [esp + 0x4c]
add eax, 0xfffffffd
mov dword [esp + 0x20], eax
call fcn.00401200
mov edi, dword [esp + 0x28]
neg eax
sbb ecx, ecx
inc ecx
cmp edi, dword [esp + 0x20]
sbb eax, eax
neg eax
test eax, ecx
je 0x4048e4
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x20]
and esi, 0x1f
mov dword [esp + 0x10], esi
nop dword [eax + eax]
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
lea edx, [ebx + eax*4]
movzx eax, word [edx + 4]
mov word [edi], ax
movzx ecx, byte [edx + 6]
add ecx, dword [esp + 0x50]
movzx eax, byte [edx + 7]
add edi, eax
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x4c]
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
lea ecx, [ebx + eax*4]
movzx eax, word [ecx + 4]
mov word [edi], ax
movzx eax, byte [ecx + 6]
add dword [esp + 0x50], eax
movzx eax, byte [ecx + 7]
lea ecx, [esp + 0x4c]
add edi, eax
call fcn.00401200
neg eax
sbb ecx, ecx
inc ecx
cmp edi, ebp
sbb eax, eax
neg eax
test eax, ecx
jne 0x404870
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
jmp 0x4048e9
and dword [esp + 0x10], 0x1f
mov eax, dword [esp + 0x8c]
lea ecx, [esp + 0x4c]
add eax, 0xfffffffe
mov dword [esp + 0x28], eax
call fcn.00401200
neg eax
sbb ecx, ecx
inc ecx
cmp dword [esp + 0x28], edi
sbb eax, eax
inc eax
test eax, ecx
je 0x40496e
mov esi, dword [esp + 0x18]
mov ebp, dword [esp + 0x28]
and esi, 0x1f
mov dword [esp + 0x18], esi
nop
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x4c]
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
lea ecx, [ebx + eax*4]
mov ax, word [ecx + 4]
mov word [edi], ax
movzx eax, byte [ecx + 6]
add dword [esp + 0x50], eax
movzx eax, byte [ecx + 7]
lea ecx, [esp + 0x4c]
add edi, eax
call fcn.00401200
neg eax
sbb ecx, ecx
inc ecx
cmp ebp, edi
sbb eax, eax
inc eax
test eax, ecx
jne 0x404920
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
jmp 0x404979
mov edx, dword [esp + 0x18]
and edx, 0x1f
mov dword [esp + 0x18], edx
cmp edi, dword [esp + 0x28]
ja 0x4049ca
mov esi, dword [esp + 0x50]
mov ebp, dword [esp + 0x28]
mov eax, dword [esp + 0x4c]
and esi, 0x1f
mov ecx, esi
shl eax, cl
mov ecx, edx
shr eax, cl
lea ecx, [ebx + eax*4]
mov ax, word [ecx + 4]
mov word [edi], ax
movzx eax, byte [ecx + 6]
mov esi, dword [esp + 0x50]
add esi, eax
movzx eax, byte [ecx + 7]
add edi, eax
mov dword [esp + 0x50], esi
cmp edi, ebp
jbe 0x404987
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
jmp 0x4049ce
mov ecx, dword [esp + 0x50]
cmp edi, dword [esp + 0x8c]
jae 0x404a1c
mov eax, dword [esp + 0x4c]
and ecx, 0x1f
shl eax, cl
mov ecx, dword [esp + 0x10]
shr eax, cl
lea edx, [ebx + eax*4]
mov al, byte [edx + 4]
mov byte [edi], al
cmp byte [edx + 7], 1
jne 0x4049fe
movzx eax, byte [edx + 6]
add dword [esp + 0x50], eax
jmp 0x404a1c
mov ecx, dword [esp + 0x50]
cmp ecx, 0x20
jae 0x404a1c
movzx eax, byte [edx + 6]
add ecx, eax
mov eax, 0x20
cmp ecx, 0x20
cmova ecx, eax
mov dword [esp + 0x50], ecx
mov edi, dword [esp + 0x88]
lea ecx, [esp + 0x60]
add edi, 0xfffffffd
mov dword [esp + 0x34], edi
call fcn.00401200
neg eax
sbb ecx, ecx
inc ecx
cmp esi, edi
sbb eax, eax
neg eax
test eax, ecx
je 0x404abe
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x34]
nop word [eax + eax]
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
and ecx, 0x1f
shl eax, cl
mov ecx, edi
shr eax, cl
lea edx, [ebx + eax*4]
movzx eax, word [edx + 4]
mov word [esi], ax
movzx ecx, byte [edx + 6]
add ecx, dword [esp + 0x64]
movzx eax, byte [edx + 7]
add esi, eax
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0x60]
and ecx, 0x1f
shl eax, cl
mov ecx, edi
shr eax, cl
lea ecx, [ebx + eax*4]
movzx eax, word [ecx + 4]
mov word [esi], ax
movzx eax, byte [ecx + 6]
add dword [esp + 0x64], eax
movzx eax, byte [ecx + 7]
lea ecx, [esp + 0x60]
add esi, eax
call fcn.00401200
neg eax
sbb ecx, ecx
inc ecx
cmp esi, ebp
sbb eax, eax
neg eax
test eax, ecx
jne 0x404a50
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x88]
lea ecx, [esp + 0x60]
add edi, 0xfffffffe
mov dword [esp + 0x30], edi
call fcn.00401200
neg eax
sbb ecx, ecx
inc ecx
cmp edi, esi
mov edi, dword [esp + 0x18]
sbb eax, eax
inc eax
test eax, ecx
je 0x404b34
mov ebp, dword [esp + 0x30]
nop dword [eax + eax]
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
and ecx, 0x1f
shl eax, cl
mov ecx, edi
shr eax, cl
lea ecx, [ebx + eax*4]
mov ax, word [ecx + 4]
mov word [esi], ax
movzx eax, byte [ecx + 6]
add dword [esp + 0x64], eax
movzx eax, byte [ecx + 7]
lea ecx, [esp + 0x60]
add esi, eax
call fcn.00401200
neg eax
sbb ecx, ecx
inc ecx
cmp ebp, esi
sbb eax, eax
inc eax
test eax, ecx
jne 0x404af0
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x64]
cmp esi, dword [esp + 0x30]
ja 0x404b77
mov ebp, dword [esp + 0x30]
mov eax, dword [esp + 0x60]
and edx, 0x1f
mov ecx, edx
shl eax, cl
mov ecx, edi
shr eax, cl
lea ecx, [ebx + eax*4]
mov ax, word [ecx + 4]
mov word [esi], ax
movzx eax, byte [ecx + 6]
mov edx, dword [esp + 0x64]
add edx, eax
movzx eax, byte [ecx + 7]
add esi, eax
mov dword [esp + 0x64], edx
cmp esi, ebp
jbe 0x404b42
mov ebp, dword [esp + 0x14]
cmp esi, dword [esp + 0x88]
jae 0x404bc7
mov eax, dword [esp + 0x60]
and edx, 0x1f
mov ecx, edx
shl eax, cl
mov ecx, dword [esp + 0x10]
shr eax, cl
lea edx, [ebx + eax*4]
mov al, byte [edx + 4]
mov byte [esi], al
cmp byte [edx + 7], 1
jne 0x404ba9
movzx eax, byte [edx + 6]
add dword [esp + 0x64], eax
jmp 0x404bc7
mov ecx, dword [esp + 0x64]
cmp ecx, 0x20
jae 0x404bc7
movzx eax, byte [edx + 6]
add ecx, eax
mov eax, 0x20
cmp ecx, 0x20
cmova ecx, eax
mov dword [esp + 0x64], ecx
lea ecx, [esp + 0x74]
call fcn.00401200
mov esi, dword [esp + 0x10]
neg eax
sbb ecx, ecx
inc ecx
cmp ebp, dword [esp + 0x2c]
sbb eax, eax
neg eax
test eax, ecx
je 0x404c60
mov edi, dword [esp + 0x2c]
nop dword [eax]
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
lea edx, [ebx + eax*4]
movzx eax, word [edx + 4]
mov word [ebp], ax
movzx ecx, byte [edx + 6]
add ecx, dword [esp + 0x78]
movzx eax, byte [edx + 7]
add ebp, eax
mov dword [esp + 0x78], ecx
mov eax, dword [esp + 0x74]
and ecx, 0x1f
shl eax, cl
mov ecx, esi
shr eax, cl
lea ecx, [ebx + eax*4]
movzx eax, word [ecx + 4]
mov word [ebp], ax
movzx eax, byte [ecx + 6]
add dword [esp + 0x78], eax
movzx eax, byte [ecx + 7]
lea ecx, [esp + 0x74]
add ebp, eax
call fcn.00401200
neg eax
sbb ecx, ecx
inc ecx
cmp ebp, edi
sbb eax, eax
neg eax
test eax, ecx
jne 0x404bf0
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x94]
lea ecx, [esp + 0x74]
add eax, 0xfffffffe
mov dword [esp + 0x2c], eax
call fcn.00401200
neg eax
sbb ecx, ecx
inc ecx
cmp dword [esp + 0x2c], ebp
sbb eax, eax
inc eax
test eax, ecx
je 0x404cd5
mov esi, dword [esp + 0x2c]
nop dword [eax + eax]
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
and ecx, 0x1f
shl eax, cl
mov ecx, edi
shr eax, cl
lea ecx, [ebx + eax*4]
mov ax, word [ecx + 4]
mov word [ebp], ax
movzx eax, byte [ecx + 6]
add dword [esp + 0x78], eax
movzx eax, byte [ecx + 7]
lea ecx, [esp + 0x74]
add ebp, eax
call fcn.00401200
neg eax
sbb ecx, ecx
inc ecx
cmp esi, ebp
sbb eax, eax
inc eax
test eax, ecx
jne 0x404c90
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x78]
cmp ebp, dword [esp + 0x2c]
ja 0x404d19
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x74]
and edx, 0x1f
mov ecx, edx
shl eax, cl
mov ecx, edi
shr eax, cl
lea ecx, [ebx + eax*4]
mov ax, word [ecx + 4]
mov word [ebp], ax
movzx eax, byte [ecx + 6]
mov edx, dword [esp + 0x78]
add edx, eax
movzx eax, byte [ecx + 7]
add ebp, eax
mov dword [esp + 0x78], edx
cmp ebp, esi
jbe 0x404ce3
mov esi, dword [esp + 0x10]
cmp ebp, dword [esp + 0x94]
jae 0x404d62
mov eax, dword [esp + 0x74]
and edx, 0x1f
mov ecx, edx
shl eax, cl
mov ecx, esi
shr eax, cl
lea ecx, [ebx + eax*4]
mov al, byte [ecx + 4]
mov byte [ebp], al
cmp byte [ecx + 7], 1
mov edx, dword [esp + 0x78]
jne 0x404d4c
movzx eax, byte [ecx + 6]
add edx, eax
jmp 0x404d62
cmp edx, 0x20
jae 0x404d62
movzx eax, byte [ecx + 6]
add edx, eax
mov eax, 0x20
cmp edx, 0x20
cmova edx, eax
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x44]
jne 0x404d7a
cmp dword [esp + 0x3c], 0x20
jne 0x404d7a
mov ecx, 1
jmp 0x404d7c
xor ecx, ecx
mov eax, dword [esp + 0x54]
cmp eax, dword [esp + 0x58]
jne 0x404d94
cmp dword [esp + 0x50], 0x20
jne 0x404d94
mov edi, 1
jmp 0x404d96
xor edi, edi
mov eax, dword [esp + 0x68]
cmp eax, dword [esp + 0x6c]
jne 0x404dae
cmp dword [esp + 0x64], 0x20
jne 0x404dae
mov esi, 1
jmp 0x404db0
xor esi, esi
mov eax, dword [esp + 0x7c]
cmp eax, dword [esp + 0x80]
jne 0x404dc7
cmp edx, 0x20
jne 0x404dc7
lea eax, [edx - 0x1f]
jmp 0x404dc9
xor eax, eax
and ecx, eax
mov eax, dword [esp + 0x98]
and ecx, esi
test edi, ecx
mov ecx, 0xffffffec
cmove eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x94
ret