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

Disassembly:
sub esp, 0x80
mov eax, dword [esp + 0x84]
mov ecx, dword [eax]
mov eax, dword [esp + 0x88]
movzx eax, word [eax]
mov edx, dword [ecx]
push ebx
push ebp
push esi
xor esi, esi
cmp ax, 0x3f
push edi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x50], edx
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x68], eax
jbe 0x42fdd8
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
movzx ecx, ax
mov eax, 1
xor edx, edx
mov byte [esp + 0x16], 1
mov dword [esp + 0x34], ecx
call fcn.0046e7b0
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x38], esi
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x5c]
ja 0x4303b5
jb 0x42fe30
mov edx, dword [esp + 0x18]
cmp edx, dword [esp + 0x58]
jae 0x4303b5
movzx eax, word [esp + 0xa4]
mov ecx, dword [esp + 0x38]
cmp ecx, eax
jg 0x4303b5
test ecx, ecx
jle 0x42fe5a
mov edx, dword [esp + 0x2c]
mov esi, dword [edx + 8]
mov edx, dword [edx + 0xc]
or dword [esp + 0x40], esi
or dword [esp + 0x44], edx
cmp ecx, eax
jge 0x42fe6d
mov eax, dword [esp + 0x9c]
mov edx, dword [eax + 0x18]
mov edx, dword [edx + ecx*4]
jmp 0x42fe74
mov edx, dword [esp + 0xa8]
test dword [edx + 0x24], 0x400
mov dword [esp + 0x2c], edx
jne 0x4303af
movzx eax, byte [edx + 0x10]
mov ecx, dword [esp + 0x94]
mov ecx, dword [ecx + 4]
lea eax, [eax + eax*8]
mov eax, dword [ecx + eax*8 + 0x34]
xor ecx, ecx
cmp dword [esp + 0x34], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], ecx
jle 0x42ffc9
mov dword [esp + 0x28], ecx
mov eax, 1
xor edx, edx
call fcn.0046e7b0
mov ebp, edx
mov ebx, eax
and eax, dword [esp + 0x18]
mov ecx, ebp
and ecx, dword [esp + 0x1c]
or eax, ecx
jne 0x42ffab
mov ecx, dword [esp + 0x98]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + edx]
call fcn.004038b0
mov edi, eax
cmp byte [edi], 0x9a
jne 0x42ffab
mov ecx, dword [esp + 0x30]
cmp dword [edi + 0x1c], ecx
jne 0x42ffab
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
movsx ecx, word [edi + 0x20]
push 0
not eax
push 0x182
not edx
push eax
mov eax, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0xa4]
add edx, 0x148
call fcn.0042d910
mov esi, eax
add esp, 0x10
test esi, esi
je 0x42ffab
test byte [esi + 0x12], 0x82
je 0x42ffa3
cmp word [edi + 0x20], 0
jl 0x42ffa3
mov ecx, dword [esp + 0x98]
mov edx, dword [ecx + 4]
mov eax, dword [esp + 0x94]
mov ecx, dword [eax]
mov eax, dword [esp + 0x28]
push ecx
mov ecx, dword [eax + edx]
call fcn.00423b20
add esp, 4
test eax, eax
jne 0x42ff75
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + 8]
mov edx, dword [esp + 0x94]
mov edi, dword [eax]
mov eax, dword [edx]
mov ecx, dword [esi]
push eax
call fcn.00423b20
add esp, 4
test eax, eax
jne 0x42ff96
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + 8]
mov eax, dword [eax]
mov ecx, edi
call fcn.004061e0
test eax, eax
jne 0x42ffab
or dword [esp + 0x18], ebx
or dword [esp + 0x1c], ebp
mov ecx, dword [esp + 0x24]
add dword [esp + 0x28], 0x18
add ecx, 1
cmp ecx, dword [esp + 0x34]
mov dword [esp + 0x24], ecx
jl 0x42feb2
mov edx, dword [esp + 0x2c]
mov eax, dword [edx + 0x24]
test eax, 0x1000
jne 0x430278
test eax, 0x100
je 0x42ffed
xor edi, edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x54], edi
lea eax, [edi + 1]
jmp 0x430021
mov edx, dword [esp + 0x2c]
mov ecx, dword [edx + 0x1c]
test ecx, ecx
mov dword [esp + 0x24], ecx
je 0x42fdcb
test byte [ecx + 0x34], 4
jne 0x42fdcb
movzx eax, word [ecx + 0x2e]
cmp byte [ecx + 0x32], 0
mov dword [esp + 0x54], eax
movzx eax, word [ecx + 0x30]
setne byte [esp + 0x16]
mov edi, ecx
movzx esi, ax
xor edx, edx
test esi, esi
mov byte [esp + 0x21], 0
mov byte [esp + 0x22], 0
mov byte [esp + 0x23], 0
mov dword [esp + 0x3c], edx
mov dword [esp + 0x64], esi
jle 0x430278
mov eax, dword [esp + 0x2c]
movzx ecx, word [eax + 0x18]
cmp edx, ecx
jge 0x43007e
cmp word [eax + 0x2a], 0
jne 0x43007e
mov eax, dword [eax + 0x30]
mov eax, dword [eax + edx*4]
movzx eax, word [eax + 0x12]
test eax, 0x182
je 0x43007e
test eax, 0x100
je 0x430264
mov byte [esp + 0x16], 0
jmp 0x430264
test edi, edi
je 0x4300a4
mov eax, dword [edi + 4]
movsx esi, word [eax + edx*2]
mov eax, dword [edi + 0x1c]
mov al, byte [edx + eax]
mov byte [esp + 0x17], al
mov eax, dword [edi + 0xc]
movsx eax, word [eax + 0x1c]
cmp esi, eax
mov dword [esp + 0x28], esi
jne 0x4300b0
jmp 0x4300a9
mov byte [esp + 0x17], 0
or esi, 0xffffffff
mov dword [esp + 0x28], esi
cmp byte [esp + 0x16], 0
je 0x4300d4
test esi, esi
jl 0x4300d4
cmp edx, ecx
jl 0x4300d4
mov ecx, dword [edi + 0xc]
mov eax, dword [ecx + 4]
lea edx, [esi + esi*2]
cmp byte [eax + edx*8 + 0x14], 0
jne 0x4300d4
mov byte [esp + 0x16], 0
mov ebp, dword [esp + 0x98]
xor esi, esi
mov bl, 1
xor edi, edi
cmp esi, dword [esp + 0x34]
jge 0x4301ac
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.0046e7b0
and eax, dword [esp + 0x18]
and edx, dword [esp + 0x1c]
or eax, edx
jne 0x43019e
mov ecx, dword [ebp + 4]
mov ecx, dword [edi + ecx]
mov eax, ecx
test eax, eax
je 0x430139
mov edx, dword [eax + 4]
test edx, 0x1000
je 0x430139
test edx, 0x40000
je 0x430132
mov edx, dword [eax + 0x14]
mov eax, dword [edx + 4]
mov eax, dword [eax]
jmp 0x430135
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x430115
test dword [esp + 0xa0], 0x300
jne 0x430148
xor bl, bl
cmp byte [eax], 0x9a
jne 0x43019e
mov edx, dword [esp + 0x30]
cmp dword [eax + 0x1c], edx
jne 0x43019e
movsx edx, word [eax + 0x20]
mov eax, dword [esp + 0x28]
cmp edx, eax
jne 0x43019e
test eax, eax
jl 0x4301d7
mov eax, dword [esp + 0x94]
mov edx, dword [eax]
push edx
call fcn.00423b20
mov ecx, eax
add esp, 4
test ecx, ecx
jne 0x430185
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x20]
mov edx, dword [esp + 0x3c]
mov eax, dword [eax + edx*4]
mov ecx, dword [ecx]
call fcn.004061e0
test eax, eax
je 0x4301d7
add esi, 1
add edi, 0x18
test bl, bl
jne 0x4300e1
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4301bd
movzx edx, word [esp + 0x54]
cmp eax, edx
jge 0x4301c2
mov byte [esp + 0x16], 0
cmp byte [esp + 0x23], 0
je 0x430278
mov byte [esp + 0x16], 1
jmp 0x430283
test dword [esp + 0xa0], 0x100
jne 0x430236
cmp byte [esp + 0x21], 0
je 0x430201
mov al, byte [esp + 0x17]
xor al, byte [esp + 0x22]
mov edx, dword [ebp + 4]
lea ecx, [esi + esi*2]
cmp al, byte [edx + ecx*8 + 0xc]
jne 0x4301ac
jmp 0x430236
mov ecx, dword [ebp + 4]
lea eax, [esi + esi*2]
mov al, byte [ecx + eax*8 + 0xc]
xor al, byte [esp + 0x17]
mov byte [esp + 0x22], al
je 0x430231
mov ecx, dword [esp + 0x38]
mov eax, 1
xor edx, edx
call fcn.0046e7b0
mov ecx, dword [esp + 0xac]
or dword [ecx], eax
or dword [ecx + 4], edx
mov byte [esp + 0x21], 1
cmp dword [esp + 0x28], 0
jge 0x430242
mov byte [esp + 0x23], 1
mov eax, 1
xor edx, edx
mov ecx, esi
call fcn.0046e7b0
or dword [esp + 0x18], eax
or dword [esp + 0x1c], edx
mov edx, dword [esp + 0x3c]
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x64]
add edx, 1
cmp edx, esi
mov dword [esp + 0x3c], edx
jl 0x430045
jmp 0x4301c2
cmp byte [esp + 0x16], 0
je 0x43039d
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 8]
or dword [esp + 0x48], ecx
mov edx, dword [eax + 0xc]
or dword [esp + 0x4c], edx
xor ecx, ecx
cmp dword [esp + 0x34], ecx
mov dword [esp + 0x24], ecx
jle 0x43039d
mov dword [esp + 0x30], ecx
mov eax, 1
xor edx, edx
call fcn.0046e7b0
mov ecx, edx
mov ebx, eax
and eax, dword [esp + 0x18]
mov dword [esp + 0x8c], ecx
and ecx, dword [esp + 0x1c]
or eax, ecx
jne 0x430383
mov eax, dword [esp + 0x98]
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x30]
mov esi, dword [edx + ecx]
mov eax, dword [esp + 0x94]
add eax, 0x44
push esi
push eax
call fcn.004071e0
mov edi, eax
mov ebp, edx
mov ecx, edi
add esp, 8
or ecx, ebp
jne 0x430360
xor eax, eax
lea edx, [esp + 0x6c]
push esi
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
push edx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov byte [esp + 0x88], 1
mov dword [esp + 0x74], 0x4036b0
mov dword [esp + 0x78], 0x4036a0
mov dword [esp + 0x8c], eax
call fcn.0040b0b0
add esp, 8
cmp byte [esp + 0x80], 0
je 0x430383
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
not eax
not ecx
and eax, edi
and ecx, ebp
or eax, ecx
jne 0x430383
mov eax, dword [esp + 0x8c]
or dword [esp + 0x18], ebx
or dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x24]
add dword [esp + 0x30], 0x18
add ecx, 1
cmp ecx, dword [esp + 0x34]
mov dword [esp + 0x24], ecx
jl 0x4302a9
add dword [esp + 0x38], 1
cmp byte [esp + 0x16], 0
jne 0x42fe12
jmp 0x4303b5
cmp byte [edx + 0x1d], 0
jne 0x4303c9
mov ecx, dword [esp + 0x58]
cmp dword [esp + 0x18], ecx
jne 0x4303d8
mov edx, dword [esp + 0x5c]
cmp dword [esp + 0x1c], edx
jne 0x4303d8
mov al, byte [esp + 0x68]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
cmp byte [esp + 0x16], 0
jne 0x43043b
mov ebx, dword [esp + 0x34]
add ebx, 0xffffffff
test ebx, ebx
jle 0x42fdcb
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov eax, 1
xor edx, edx
mov ecx, ebx
call fcn.0046e7b0
add eax, 0xffffffff
adc edx, 0xffffffff
mov ecx, eax
mov esi, edx
and ecx, edi
and esi, ebp
cmp ecx, eax
jne 0x43041a
cmp esi, edx
je 0x43042e
sub ebx, 1
test ebx, ebx
jg 0x4303f6
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret
pop edi
pop esi
pop ebp
or al, 0xff
pop ebx
add esp, 0x80
ret