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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
mov eax, ecx
push ebx
mov ebx, edx
mov dword [esp + 0x28], eax
push esi
movzx edx, byte [eax + 0xa]
cmp byte [eax + 2], 0
mov eax, dword [ebp + 8]
push edi
mov dword [esp + 0x28], ebx
lea edi, [edx + ebx]
mov dword [esp + 0x10], edx
je 0x42bea9
mov esi, dword [eax + 0x1c]
mov ebx, dword [eax + 0x20]
mov eax, dword [eax + 0x10]
add ebx, esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], eax
cmp ebx, 0x80
jae 0x42bde8
mov byte [edi], bl
mov eax, 1
jmp 0x42be37
mov eax, ebx
cdq
mov ecx, eax
test edx, edx
ja 0x42be27
jb 0x42bdf8
cmp ecx, 0x7f
ja 0x42be04
and cl, 0x7f
mov eax, 1
mov byte [edi], cl
jmp 0x42be33
test edx, edx
ja 0x42be27
jb 0x42be12
cmp ecx, 0x3fff
ja 0x42be27
shrd eax, edx, 7
or al, 0x80
and cl, 0x7f
mov byte [edi], al
mov eax, 2
mov byte [edi + 1], cl
jmp 0x42be33
push edx
push ecx
mov ecx, edi
call fcn.00414070
add esp, 8
mov edx, dword [esp + 0x10]
mov edi, dword [ebp + 8]
movzx eax, al
add edx, eax
mov eax, dword [esp + 0x28]
add eax, edx
mov dword [esp + 0x10], edx
mov ecx, dword [edi + 8]
mov edi, dword [edi + 0xc]
test edi, edi
ja 0x42be97
jb 0x42be5a
cmp ecx, 0x7f
ja 0x42be69
and cl, 0x7f
mov byte [eax], cl
mov eax, 1
jmp 0x42bf1f
test edi, edi
ja 0x42be97
jb 0x42be77
cmp ecx, 0x3fff
ja 0x42be97
mov eax, ecx
shrd eax, edi, 7
mov edi, dword [esp + 0x28]
or al, 0x80
and cl, 0x7f
mov byte [edx + edi], al
mov eax, 2
mov byte [edx + edi + 1], cl
jmp 0x42bf1f
push edi
push ecx
mov ecx, eax
call fcn.00414070
mov edx, dword [esp + 0x18]
add esp, 8
jmp 0x42bf1f
mov ebx, dword [eax + 8]
mov esi, ebx
mov eax, dword [eax]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x18], eax
cmp ebx, 0x80
jae 0x42becd
mov byte [edi], bl
mov eax, 1
jmp 0x42bf1c
mov eax, ebx
cdq
mov ecx, eax
test edx, edx
ja 0x42bf0c
jb 0x42bedd
cmp ecx, 0x7f
ja 0x42bee9
and cl, 0x7f
mov eax, 1
mov byte [edi], cl
jmp 0x42bf18
test edx, edx
ja 0x42bf0c
jb 0x42bef7
cmp ecx, 0x3fff
ja 0x42bf0c
shrd eax, edx, 7
or al, 0x80
and cl, 0x7f
mov byte [edi], al
mov eax, 2
mov byte [edi + 1], cl
jmp 0x42bf18
push edx
push ecx
mov ecx, edi
call fcn.00414070
add esp, 8
mov edx, dword [esp + 0x10]
movzx eax, al
mov ecx, dword [esp + 0x30]
add edx, eax
mov edi, dword [esp + 0x28]
add edi, edx
mov dword [esp + 0x10], edx
movzx eax, word [ecx + 0xe]
mov dword [esp + 0x30], eax
cmp ebx, eax
jg 0x42bf75
lea ecx, [ebx + edx]
mov eax, 4
cmp ecx, eax
push esi
push dword [esp + 0x1c]
cmovl ecx, eax
mov eax, dword [ebp + 0xc]
push edi
mov dword [eax], ecx
call fcn.004ae080
add esp, 0xc
lea eax, [edi + esi]
sub ebx, esi
push ebx
push 0
push eax
call fcn.004ad600
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx esi, word [ecx + 0x10]
xor edx, edx
mov ecx, dword [ecx + 0x34]
mov eax, ebx
sub eax, esi
mov dword [esp + 0x14], ecx
mov ecx, dword [ecx + 0x24]
sub ecx, 4
div ecx
lea eax, [edx + esi]
mov edx, dword [esp + 0x10]
cmp eax, dword [esp + 0x30]
cmovle esi, eax
mov eax, dword [ebp + 0xc]
add edx, esi
lea ecx, [edx + 4]
mov dword [eax], ecx
mov eax, dword [esp + 0x28]
add eax, edx
xor edx, edx
xor ebx, ebx
mov dword [esp + 0x2c], ebx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], edx
mov dword [esp + 0x1c], esi
nop dword [eax + eax]
cmp eax, dword [esp + 0x1c]
cmovle esi, eax
cmp ecx, esi
jl 0x42bfe8
push esi
push dword [esp + 0x1c]
push edi
call fcn.004ae080
jmp 0x42c004
test ecx, ecx
jle 0x42bffb
push ecx
push dword [esp + 0x1c]
mov esi, ecx
push edi
call fcn.004ae080
jmp 0x42c004
push esi
push 0
push edi
call fcn.004ad600
mov eax, dword [esp + 0x2c]
add esp, 0xc
sub eax, esi
mov dword [esp + 0x20], eax
test eax, eax
jle 0x42c264
mov ecx, dword [esp + 0x24]
add edi, esi
add dword [esp + 0x18], esi
sub ecx, esi
sub dword [esp + 0x1c], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x24], ecx
jne 0x42bfd0
mov ecx, dword [esp + 0x14]
mov esi, ebx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x34], esi
cmp byte [ecx + 0x11], 0
je 0x42c0be
mov eax, dword [ecx + 0x20]
mov edi, esi
mov dword [esp + 0x10], eax
lea ebx, [edi + 1]
mov dword [esp + 0x2c], ebx
mov edi, ebx
cmp ebx, 2
jae 0x42c066
xor ecx, ecx
jmp 0x42c09e
mov eax, 0xcccccccd
lea esi, [ebx - 2]
mul dword [ecx + 0x24]
mov eax, esi
mov ecx, edx
xor edx, edx
shr ecx, 2
inc ecx
div ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [0x4da850]
sub esi, edx
xor edx, edx
div dword [ecx + 0x20]
xor ecx, ecx
dec eax
cmp esi, eax
mov eax, dword [esp + 0x10]
sete cl
add esi, 2
add ecx, esi
cmp ecx, ebx
mov esi, eax
mov ecx, dword [esp + 0x14]
je 0x42c054
mov eax, dword [0x4da850]
xor edx, edx
div esi
inc eax
cmp ebx, eax
mov eax, dword [esp + 0x10]
je 0x42c054
mov esi, dword [esp + 0x34]
push 0
lea eax, [esp + 0x30]
push ebx
push eax
lea edx, [esp + 0x28]
call fcn.0042a9e0
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
cmp byte [ecx + 0x11], 0
je 0x42c16e
test eax, eax
jne 0x42c1f9
lea eax, [esp + 0x10]
test esi, esi
push eax
setne al
mov edx, ebx
add al, 3
movzx eax, al
push esi
push eax
call fcn.00424db0
mov eax, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
je 0x42c176
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x42c16e
mov edx, dword [ecx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x42c163
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004c2a20
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
add esp, 0x10
jmp 0x42c16a
mov ecx, edx
call fcn.0041a3d0
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x42c1f9
mov ecx, dword [esp + 0x30]
mov eax, ebx
bswap eax
mov dword [ecx], eax
mov eax, dword [esp + 0x28]
test eax, eax
je 0x42c1d7
mov edx, dword [eax + 0x48]
test byte [edx + 0x1c], 0x20
je 0x42c1d0
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004c2a20
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
add esp, 0x10
jmp 0x42c1d7
mov ecx, edx
call fcn.0041a3d0
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov eax, dword [edx + 0x38]
mov dword [eax], 0
mov edi, dword [edx + 0x38]
mov esi, dword [ecx + 0x24]
add edi, 4
sub esi, 4
jmp 0x42bfb4
mov edx, dword [esp + 0x28]
test edx, edx
je 0x42c259
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x42c252
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004c2a20
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
mov eax, dword [esp + 0x20]
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edx
call fcn.0041a3d0
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x28]
test edx, edx
je 0x42c2c2
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x42c2bb
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.004c2a20
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edx
call fcn.0041a3d0
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret