Function at 0x40afba
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [0x432754]
movzx eax, byte [eax + 0x428048]
movzx ecx, word [0x42803c]
lea edx, [eax + eax*2]
mov eax, ecx
imul eax, dword [0x432750]
sub esp, 0x10
push ebp
lea ebp, [eax + eax*4]
add ebp, dword [edx*2 + 0x428148]
je 0x40b5b0
and dword [esp + 0xc], 0
test ecx, ecx
jle 0x40b5b0
push ebx
push esi
push edi
mov esi, dword [esp + 0x18]
imul esi, esi, 0x88
add esi, 0x426f38
mov al, byte [esi + 0x56]
movzx dx, al
cmp dx, word [0x428040]
mov ecx, 0x426db0
jb 0x40b030
and dword [0x426de0], 0
mov edi, 0x426df8
jmp 0x40b058
movzx eax, al
lea edi, [eax + eax*4]
movzx eax, byte [esi]
shl edi, 6
add edi, 0x428748
mov al, byte [eax + edi + 0x64]
cmp al, 0x10
jae 0x40b058
movzx eax, al
mov eax, dword [edi + eax*4]
test eax, eax
mov dword [esp + 0x14], eax
jne 0x40b05c
mov dword [esp + 0x14], ecx
mov al, byte [ebp + 3]
mov byte [esp + 0x13], al
mov al, byte [ebp + 4]
and dword [esi + 0x18], 0
and dword [esi + 0x1c], 0
mov bl, al
and al, 0xf
mov byte [esp + 0x12], al
mov al, byte [edi + 0x12c]
shr bl, 4
test al, 1
mov byte [esi + 2], 0
je 0x40b0d7
lea ecx, [esi + 0x55]
cmp byte [ecx], 0
jne 0x40b0d7
push 2
lea edx, [esi + 0x30]
push edx
push ecx
lea ecx, [esi + 0x28]
push ecx
lea ecx, [esi + 0x2c]
push ecx
xor ecx, ecx
mov cl, byte [edi + 0x126]
push ecx
xor ecx, ecx
mov cl, byte [edi + 0x127]
push ecx
xor ecx, ecx
mov cl, byte [edi + 0x128]
push ecx
lea ecx, [edi + 0xc4]
push ecx
movzx ecx, byte [edi + 0x124]
push ecx
push eax
lea eax, [esi + 0x20]
push eax
lea eax, [esi + 0x24]
push eax
push esi
call fcn.0040aa35
mov cl, byte [edi + 0x12d]
test cl, 1
je 0x40b132
lea eax, [esi + 0x54]
cmp byte [eax], 0
jne 0x40b132
push 4
lea edx, [esi + 0x44]
push edx
push eax
lea eax, [esi + 0x3c]
push eax
lea eax, [esi + 0x40]
push eax
xor eax, eax
mov al, byte [edi + 0x129]
push eax
xor eax, eax
mov al, byte [edi + 0x12a]
push eax
xor eax, eax
mov al, byte [edi + 0x12b]
push eax
lea eax, [edi + 0xf4]
push eax
movzx eax, byte [edi + 0x125]
push eax
push ecx
lea eax, [esi + 0x34]
push eax
lea eax, [esi + 0x38]
push eax
push esi
call fcn.0040aa35
cmp byte [esi + 3], 0
je 0x40b14c
movzx eax, word [edi + 0x132]
sub dword [esi + 0x48], eax
jns 0x40b148
and dword [esi + 0x48], 0
or byte [esi + 2], 2
mov cl, byte [ebp + 2]
movzx eax, cl
mov edx, eax
shr edx, 4
sub edx, 6
je 0x40b1bd
dec edx
je 0x40b1aa
sub edx, 4
je 0x40b18a
dec edx
dec edx
je 0x40b182
dec edx
je 0x40b176
dec edx
jne 0x40b1cd
push esi
call fcn.0040a79c
jmp 0x40b1cd
and eax, 0xf
add dword [esi + 0x14], eax
or byte [esi + 2], 4
jmp 0x40b1cd
and eax, 0xf
sub dword [esi + 0x14], eax
jmp 0x40b17c
and cl, 0xf
push esi
mov byte [esi + 0x6d], cl
call fcn.0040a7d8
mov al, byte [esi + 0x6c]
add byte [esi + 0x6b], al
mov al, byte [esi + 0x6b]
cmp al, 0x1f
jle 0x40b1cd
sub al, 0x40
mov byte [esi + 0x6b], al
jmp 0x40b1cd
and eax, 0xf
add dword [esi + 0x10], eax
push 0x40
pop eax
cmp dword [esi + 0x10], eax
jle 0x40b1c9
mov dword [esi + 0x10], eax
jmp 0x40b1c9
and eax, 0xf
sub dword [esi + 0x10], eax
jns 0x40b1c9
and dword [esi + 0x10], 0
or byte [esi + 2], 2
movzx eax, byte [esp + 0x13]
cmp eax, 7
jg 0x40b372
je 0x40b367
xor ecx, ecx
sub eax, ecx
je 0x40b2b9
dec eax
je 0x40b29f
dec eax
je 0x40b289
dec eax
je 0x40b27a
dec eax
je 0x40b259
dec eax
je 0x40b24d
dec eax
jne 0x40b584
push esi
call fcn.0040a7d8
mov al, byte [esi + 0x6c]
add byte [esi + 0x6b], al
mov al, byte [esi + 0x6b]
cmp al, 0x1f
jle 0x40b221
sub al, 0x40
mov byte [esi + 0x6b], al
mov al, byte [esi + 0x6a]
mov cl, al
shr cl, 4
and al, 0xf
test cl, cl
je 0x40b570
movzx eax, cl
add dword [esi + 0x10], eax
push 0x40
pop eax
cmp dword [esi + 0x10], eax
jle 0x40b580
mov dword [esi + 0x10], eax
jmp 0x40b580
and dword [esi + 0x1c], 0
push esi
call fcn.0040a79c
jmp 0x40b221
push esi
call fcn.0040a7d8
mov al, byte [esi + 0x6c]
add byte [esi + 0x6b], al
mov al, byte [esi + 0x6b]
cmp al, 0x1f
jle 0x40b584
sub al, 0x40
mov byte [esi + 0x6b], al
jmp 0x40b584
and dword [esi + 0x1c], 0
push esi
call fcn.0040a79c
jmp 0x40b584
movzx eax, byte [esi + 0x61]
shl eax, 2
add dword [esi + 0xc], eax
mov dword [esi + 0x1c], ecx
or byte [esi + 2], 1
jmp 0x40b584
movzx eax, byte [esi + 0x62]
shl eax, 2
sub dword [esi + 0xc], eax
push 0x38
pop eax
cmp dword [esi + 0xc], eax
mov dword [esi + 0x1c], ecx
jge 0x40b296
mov dword [esi + 0xc], eax
jmp 0x40b296
cmp byte [ebp + 4], 0
jbe 0x40b584
mov eax, dword [0x432764]
push 3
cdq
pop ecx
idiv ecx
dec edx
je 0x40b322
dec edx
jne 0x40b296
test byte [0x428042], 1
je 0x40b2ea
movzx eax, byte [esp + 0x12]
shl eax, 6
mov dword [esi + 0x1c], eax
jmp 0x40b296
mov ebx, dword [esp + 0x14]
movsx eax, byte [ebx + 0xd]
movzx ecx, byte [esp + 0x12]
push eax
movzx eax, byte [esi + 0x57]
add eax, ecx
push eax
call fcn.0040ac18
movsx ecx, byte [ebx + 0xd]
push ecx
movzx ecx, byte [esi + 0x57]
push ecx
mov dword [esp + 0x24], eax
call fcn.0040ac18
mov ecx, dword [esp + 0x1c]
sub ecx, eax
jmp 0x40b293
test byte [0x428042], 1
je 0x40b330
movzx eax, bl
jmp 0x40b2e2
mov eax, dword [esp + 0x14]
movsx eax, byte [eax + 0xd]
push eax
movzx eax, byte [esi + 0x57]
movzx ecx, bl
add eax, ecx
push eax
call fcn.0040ac18
mov ebx, eax
mov eax, dword [esp + 0x14]
movsx eax, byte [eax + 0xd]
push eax
movzx eax, byte [esi + 0x57]
push eax
call fcn.0040ac18
sub ebx, eax
mov dword [esi + 0x1c], ebx
jmp 0x40b296
push esi
call fcn.0040a95e
jmp 0x40b584
sub eax, 0xa
je 0x40b221
sub eax, 4
je 0x40b4f6
sub eax, 3
je 0x40b49e
sub eax, 8
je 0x40b462
dec eax
dec eax
je 0x40b3ad
dec eax
dec eax
jne 0x40b584
push esi
call fcn.0040acf9
jmp 0x40b584
mov al, byte [esi + 0x66]
test al, al
je 0x40b584
movzx ecx, al
mov eax, dword [0x432764]
cdq
idiv ecx
test edx, edx
jne 0x40b584
mov al, byte [esi + 0x65]
test al, al
je 0x40b537
movzx eax, al
dec eax
cmp eax, 0xe
ja case.0x40b3df.8
jmp dword [eax*4 + 0x40b5b5]
dec dword [esi + 0x10]
jmp case.0x40b3df.8
add dword [esi + 0x10], 0xfffffffe
jmp case.0x40b3df.8
add dword [esi + 0x10], 0xfffffffc
jmp case.0x40b3df.8
add dword [esi + 0x10], 0xfffffff8
jmp case.0x40b3df.8
add dword [esi + 0x10], 0xfffffff0
jmp case.0x40b3df.8
mov eax, dword [esi + 0x10]
shl eax, 1
push 3
cdq
pop ecx
idiv ecx
jmp 0x40b43d
sar dword [esi + 0x10], 1
jmp case.0x40b3df.8
inc dword [esi + 0x10]
jmp case.0x40b3df.8
add dword [esi + 0x10], 2
jmp case.0x40b3df.8
add dword [esi + 0x10], 4
jmp case.0x40b3df.8
add dword [esi + 0x10], 8
jmp case.0x40b3df.8
add dword [esi + 0x10], 0x10
jmp case.0x40b3df.8
mov eax, dword [esi + 0x10]
lea eax, [eax + eax*2]
cdq
sub eax, edx
sar eax, 1
mov dword [esi + 0x10], eax
jmp case.0x40b3df.8
shl dword [esi + 0x10], 1
push 0x40
lea eax, [esi + 0x10]
pop ecx
cmp dword [eax], ecx
jle 0x40b451
mov dword [eax], ecx
cmp dword [eax], 0
jge 0x40b459
and dword [eax], 0
or byte [esi + 2], 2
jmp 0x40b537
mov al, byte [esi + 0x63]
mov cl, al
shr cl, 4
and al, 0xf
test cl, cl
je 0x40b485
movzx eax, cl
add dword [esi + 0x14], eax
mov eax, 0xff
cmp dword [esi + 0x14], eax
jle 0x40b495
mov dword [esi + 0x14], eax
jmp 0x40b495
test al, al
je 0x40b495
movzx eax, al
sub dword [esi + 0x14], eax
jns 0x40b495
and dword [esi + 0x14], 0
or byte [esi + 2], 4
jmp 0x40b584
mov al, byte [0x432774]
mov cl, al
shr cl, 4
and al, 0xf
test cl, cl
je 0x40b4d3
movzx eax, cl
add dword [0x432748], eax
cmp dword [0x432748], 0x40
jle 0x40b584
mov dword [0x432748], 0x40
jmp 0x40b584
test al, al
je 0x40b584
movzx eax, al
sub dword [0x432748], eax
jns 0x40b584
and dword [0x432748], 0
jmp 0x40b584
movzx eax, bl
sub eax, 9
je 0x40b552
sub eax, 3
je 0x40b543
dec eax
jne 0x40b584
movzx eax, byte [esp + 0x12]
cmp dword [0x432764], eax
jne 0x40b53d
push dword [esp + 0x14]
push esi
call fcn.0040af45
mov eax, dword [esi + 0x78]
or byte [esi + 2], 1
mov dword [esi + 0xc], eax
xor eax, eax
mov al, byte [ebp + 2]
test al, al
je 0x40b537
push eax
push esi
call fcn.0040ab29
or byte [esi + 2], 8
jmp 0x40b584
and byte [esi + 2], 0xf0
jmp 0x40b584
movzx eax, byte [esp + 0x12]
cmp dword [0x432764], eax
jne 0x40b584
jmp 0x40b57c
cmp byte [esp + 0x12], 0
je 0x40b584
mov eax, dword [0x432764]
movzx ecx, byte [esp + 0x12]
cdq
idiv ecx
test edx, edx
jne 0x40b584
or byte [esi + 2], 0xb
jmp 0x40b584
test al, al
je 0x40b580
movzx eax, al
sub dword [esi + 0x10], eax
jns 0x40b580
and dword [esi + 0x10], 0
or byte [esi + 2], 2
push edi
push esi
call fcn.0040a86b
push dword [esp + 0x14]
push esi
call fcn.0040ad31
movzx eax, word [0x42803c]
inc dword [esp + 0x18]
add ebp, 5
cmp dword [esp + 0x18], eax
jl 0x40affd
pop edi
pop esi
pop ebx
pop ebp
add esp, 0x10
ret