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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
mov eax, dword [0x583f80]
xor eax, esp
mov dword [esp + 0x40], eax
push ebx
push esi
mov esi, ecx
and dl, 2
mov eax, dword [esi + 8]
movzx ecx, word [esi + 0x46]
mov ebx, dword [esi + 0x74]
mov dword [esp + 0x14], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x10], eax
movsx eax, byte [esi + 0x44]
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 0x40]
mov dword [esp + 0x1c], ecx
mov ax, word [eax + ecx*2]
mov ch, al
push edi
mov dword [esp + 0x28], 0
mov byte [esp + 0xf], dl
mov dword [esp + 0x2c], ebx
mov cl, ah
movzx eax, word [ebx + 0x18]
movzx ecx, cx
and ecx, eax
add ecx, dword [ebx + 0x38]
mov dword [esp + 0x1c], ecx
test dl, dl
je 0x428b77
cmp byte [ebx + 8], 0
je 0x428b68
push ecx
push ebx
call fcn.00420690
movzx edi, word [ebx + 0x14]
movzx ecx, ax
mov eax, dword [esp + 0x1c]
add edi, 2
add edi, ecx
mov ecx, dword [eax + 0x24]
add ecx, ecx
mov eax, 0xaaaaaaab
mul ecx
shr edx, 1
add esp, 8
cmp edi, edx
jg 0x428b68
mov dword [esp + 0x28], 1
jmp 0x428b77
mov ecx, esi
call fcn.0041feb0
test eax, eax
jne 0x428e62
cmp byte [ebx + 8], 0
jne 0x428bb5
and byte [esi + 1], 0xf1
xor eax, eax
mov word [esi + 0x32], ax
cmp byte [esi], al
jne 0x428ba6
movzx ecx, word [esi + 0x46]
test cx, cx
je 0x428ba6
mov eax, dword [esi + 0x74]
cmp byte [eax + 8], 0
je 0x428ba6
lea eax, [ecx - 1]
mov word [esi + 0x46], ax
jmp 0x428bb5
mov ecx, esi
call fcn.00424f90
test eax, eax
jne 0x428e62
mov al, byte [esi + 1]
test al, 0x20
je 0x428bf1
mov ecx, dword [esp + 0x14]
mov edx, dword [esi + 0x40]
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x428bec
lea ebx, [ebx]
cmp ecx, esi
je 0x428be5
test edx, edx
je 0x428c7c
cmp dword [ecx + 0x40], edx
je 0x428c7c
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x428bd0
and al, 0xdf
mov byte [esi + 1], al
cmp dword [esi + 0x70], 0
jne 0x428c0e
mov edx, dword [esi + 0x40]
mov ecx, dword [esp + 0x18]
push 0
push dword [esi + 0x24]
push dword [esi + 0x20]
call fcn.0041fd50
add esp, 0xc
mov ecx, dword [ebx + 0x48]
call fcn.0041b6b0
test eax, eax
jne 0x428e62
mov edx, dword [esp + 0x1c]
lea eax, [esp + 0x30]
push eax
mov ecx, ebx
call fcn.004259c0
mov edx, dword [esp + 0x24]
mov dword [esp + 0x14], eax
add esp, 4
lea eax, [esp + 0x10]
push eax
movzx eax, word [esp + 0x46]
push eax
mov ecx, ebx
call fcn.00425e80
mov eax, dword [esp + 0x18]
add esp, 8
test eax, eax
jne 0x428e62
cmp byte [ebx + 8], al
jne 0x428d70
movsx eax, byte [esi + 0x44]
mov ecx, dword [esp + 0x24]
mov edi, dword [esi + 0x74]
dec eax
cmp ecx, eax
jge 0x428ca7
mov eax, dword [esi + ecx*4 + 0x7c]
mov eax, dword [eax + 4]
jmp 0x428caa
test ecx, ecx
je 0x428bec
push esi
call fcn.0041ff80
add esp, 4
test eax, eax
je 0x428bf1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x40]
xor ecx, esp
call fcn.004fcf30
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 4]
movzx ecx, word [edi + 0x16]
mov edx, dword [edi + 0x38]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x40]
mov ax, word [eax + ecx*2 - 2]
mov ch, al
mov cl, ah
movzx eax, word [edi + 0x18]
movzx ebx, cx
and ebx, eax
add ebx, edx
lea eax, [edx + 4]
cmp ebx, eax
jae 0x428cef
mov ecx, 0x116b1
call fcn.00494d20
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x40]
xor ecx, esp
call fcn.004fcf30
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x4c]
push ebx
push edi
call eax
mov ecx, dword [edi + 0x48]
movzx eax, ax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
add esp, 8
mov eax, dword [eax + 0x50]
mov dword [esp + 0x14], eax
call fcn.0041b6b0
mov dword [esp + 0x10], eax
test eax, eax
jne 0x428d48
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x20]
mov eax, dword [esp + 0x20]
push dword [esp + 0x1c]
add eax, 4
push eax
lea eax, [ebx - 4]
mov ebx, dword [esp + 0x3c]
push eax
mov ecx, ebx
call fcn.00425fb0
add esp, 0x14
jmp 0x428d4c
mov ebx, dword [esp + 0x2c]
movzx edx, word [edi + 0x16]
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x1c]
dec edx
mov ecx, edi
call fcn.00425e80
mov eax, dword [esp + 0x18]
add esp, 8
test eax, eax
jne 0x428e62
mov ecx, esi
call fcn.004281c0
mov edi, eax
test edi, edi
jne 0x428e60
movsx ecx, byte [esi + 0x44]
cmp ecx, dword [esp + 0x24]
jle 0x428dea
mov ecx, dword [esi + 0x74]
call fcn.004217d0
dec byte [esi + 0x44]
movsx eax, byte [esi + 0x44]
mov edi, dword [esp + 0x24]
cmp eax, edi
jle 0x428dd2
mov cl, byte [esi + 0x44]
movsx eax, cl
dec cl
mov eax, dword [esi + eax*4 + 0x78]
mov byte [esi + 0x44], cl
test eax, eax
je 0x428dca
mov ecx, dword [eax + 0x48]
test byte [ecx + 0x1c], 0x20
je 0x428dc5
call fcn.00419a10
jmp 0x428dca
call fcn.004153c0
movsx eax, byte [esi + 0x44]
cmp eax, edi
jg 0x428da2
movsx eax, byte [esi + 0x44]
mov ecx, esi
mov eax, dword [esi + eax*4 + 0x78]
mov dword [esi + 0x74], eax
call fcn.004281c0
mov edi, eax
test edi, edi
jne 0x428e60
cmp dword [esp + 0x28], 0
je 0x428e3e
mov byte [esi], 2
movzx eax, word [ebx + 0x16]
cmp dword [esp + 0x20], eax
jl 0x428e23
mov dword [esi + 4], 0xffffffff
mov ax, word [ebx + 0x16]
dec ax
mov word [esi + 0x46], ax
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x40]
xor ecx, esp
call fcn.004fcf30
mov esp, ebp
pop ebp
ret
mov dword [esi + 4], 1
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x40]
xor ecx, esp
call fcn.004fcf30
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.004244f0
cmp byte [esp + 0xf], 0
mov edi, eax
je 0x428e58
mov ecx, esi
call fcn.0041fe50
mov byte [esi], 3
xor eax, eax
cmp edi, 0x10
cmove edi, eax
mov eax, edi
mov ecx, dword [esp + 0x4c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004fcf30
mov esp, ebp
pop ebp
ret