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

Disassembly:
push 0xffffffffffffffff
push 0x48c1b4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb4
mov eax, dword [0x4aff50]
push ebx
push ebp
push esi
push edi
mov dword [esp + 0xc0], eax
call fcn.00407df0
push 0xa
mov ebp, 0xf
xor esi, esi
push str.debug_text
lea ecx, [esp + 0x74]
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x88], esi
mov byte [esp + 0x78], 0
call fcn.00404760
lea eax, [esp + 0x6c]
push eax
mov ecx, 0x4b1d2c
mov dword [esp + 0xd0], esi
call fcn.00407360
cmp dword [esp + 0x84], 0x10
jb 0x402117
mov ecx, dword [esp + 0x70]
push ecx
call fcn.004826a1
add esp, 4
xor eax, eax
mov ecx, 0x12c
mov edi, 0x4b1878
rep stosd dword es:[edi], eax
mov dword [esp + 0xbc], ebp
mov dword [esp + 0xb8], esi
mov byte [esp + 0xa8], al
lea ecx, [esp + 0x14]
mov dword [esp + 0xcc], 1
call fcn.00403d40
mov dword [esp + 0x18], eax
mov byte [eax + 0x2d], 1
mov eax, dword [esp + 0x18]
mov dword [eax + 4], eax
mov eax, dword [esp + 0x18]
mov dword [eax], eax
mov eax, dword [esp + 0x18]
mov dword [eax + 8], eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0xd8]
lea ecx, [esp + 0xa4]
lea ebx, [eax + edx]
push ecx
push ebx
push eax
mov byte [esp + 0xd8], 2
mov dword [esp + 0x2c], ebx
call fcn.004014f0
mov edi, eax
add esp, 0xc
cmp edi, esi
mov dword [esp + 0x28], edi
je 0x40256b
jmp 0x4021b0
push 1
push 0
push 0x491928
lea ecx, [esp + 0xb0]
call fcn.00403260
mov esi, eax
cmp esi, 0xffffffff
je 0x40254b
push esi
xor edi, edi
push edi
lea edx, [esp + 0x74]
push edx
lea ecx, [esp + 0xb0]
call fcn.00405100
mov eax, dword [esp + 0xb8]
sub eax, esi
dec eax
push eax
inc esi
push esi
lea ecx, [esp + 0x90]
push ecx
lea ecx, [esp + 0xb0]
mov byte [esp + 0xd8], 3
call fcn.00405100
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x70]
mov esi, 0x10
cmp eax, esi
mov byte [esp + 0xcc], 4
mov edx, ecx
jae 0x402230
lea edx, [esp + 0x70]
cmp byte [edx], 0x22
jne 0x40229c
cmp eax, esi
jae 0x40223d
lea ecx, [esp + 0x70]
mov eax, dword [esp + 0x80]
cmp byte [eax + ecx - 1], 0x22
jne 0x40229c
add eax, 0xfffffffe
push eax
push 1
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x78]
call fcn.00405100
push 0xffffffffffffffff
push edi
push eax
lea ecx, [esp + 0x78]
mov byte [esp + 0xd8], 5
call fcn.00404540
cmp dword [esp + 0x4c], esi
mov byte [esp + 0xcc], 4
jb 0x40228f
mov eax, dword [esp + 0x38]
push eax
call fcn.004826a1
add esp, 4
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], edi
mov byte [esp + 0x38], 0
mov edx, dword [esp + 0xa0]
cmp edx, esi
mov ecx, dword [esp + 0x8c]
mov eax, ecx
jae 0x4022b7
lea eax, [esp + 0x8c]
cmp byte [eax], 0x22
jne 0x40232e
cmp edx, esi
mov eax, ecx
jae 0x4022c9
lea eax, [esp + 0x8c]
mov ecx, dword [esp + 0x9c]
cmp byte [ecx + eax - 1], 0x22
jne 0x40232e
add ecx, 0xfffffffe
push ecx
push 1
lea ecx, [esp + 0x58]
push ecx
lea ecx, [esp + 0x94]
call fcn.00405100
push 0xffffffffffffffff
push edi
push eax
lea ecx, [esp + 0x94]
mov byte [esp + 0xd8], 6
call fcn.00404540
cmp dword [esp + 0x68], esi
mov byte [esp + 0xcc], 4
jb 0x402321
mov edx, dword [esp + 0x54]
push edx
call fcn.004826a1
add esp, 4
mov dword [esp + 0x68], ebp
mov dword [esp + 0x64], edi
mov byte [esp + 0x54], 0
mov eax, dword [0x4b1d30]
mov dword [esp + 0x10], edi
lea ebx, [eax + 0x14]
lea ebx, [ebx]
test eax, eax
je 0x40235f
mov ecx, dword [0x4b1d34]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x10], eax
jge 0x4023ee
cmp dword [esp + 0xa0], esi
mov edi, dword [esp + 0x8c]
jae 0x402380
lea edi, [esp + 0x8c]
mov edx, dword [ebx]
mov eax, edx
cmp eax, edx
jae 0x402388
test edx, edx
mov ebp, dword [esp + 0x9c]
je 0x4023b8
cmp edx, ebp
mov ecx, edx
jb 0x40239b
mov ecx, ebp
cmp dword [ebx + 4], 0x10
jb 0x4023a6
mov esi, dword [ebx - 0x10]
jmp 0x4023a9
lea esi, [ebx - 0x10]
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x4023b4
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4023c7
cmp edx, ebp
jb 0x4023c7
xor eax, eax
cmp edx, ebp
setne al
test eax, eax
je 0x4023e2
mov ecx, dword [esp + 0x10]
mov eax, dword [0x4b1d30]
inc ecx
mov dword [esp + 0x10], ecx
add ebx, 0x1c
mov esi, 0x10
jmp 0x402340
mov eax, dword [esp + 0x10]
test eax, eax
mov dword [esp + 0x10], eax
jne 0x402429
lea eax, [esp + 0x88]
push eax
mov ecx, 0x4b1d2c
call fcn.00407360
mov eax, dword [0x4b1d30]
test eax, eax
je 0x402424
mov ecx, dword [0x4b1d34]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
dec eax
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x6c]
mov dword [esp + 0x24], ecx
push edx
lea ecx, [esp + 0x18]
call fcn.00404250
mov ebp, dword [esp + 0x18]
cmp eax, ebp
mov dword [esp + 0x2c], eax
je 0x4024a7
cmp dword [eax + 0x24], 0x10
mov ebx, dword [eax + 0x20]
jb 0x402459
mov eax, dword [eax + 0x10]
jmp 0x40245c
add eax, 0x10
mov edx, dword [esp + 0x80]
test edx, edx
je 0x402492
cmp edx, ebx
mov ecx, edx
jb 0x40246f
mov ecx, ebx
cmp dword [esp + 0x84], 0x10
mov esi, dword [esp + 0x70]
jae 0x402481
lea esi, [esp + 0x70]
mov edi, eax
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40248e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x40249f
cmp edx, ebx
jb 0x4024a7
xor eax, eax
cmp edx, ebx
setne al
test eax, eax
jl 0x4024a7
lea eax, [esp + 0x2c]
jmp 0x4024af
mov dword [esp + 0x30], ebp
lea eax, [esp + 0x30]
mov ecx, dword [esp + 0x24]
cmp dword [eax], ecx
jne 0x4024cd
lea edx, [esp + 0x6c]
push edx
lea ecx, [esp + 0x18]
call fcn.00407500
mov ecx, dword [esp + 0x10]
mov dword [eax], ecx
jmp 0x4024ce
int3
mov eax, dword [esp + 0xa0]
mov ebx, 0x10
cmp eax, ebx
jb 0x4024ee
mov edx, dword [esp + 0x8c]
push edx
call fcn.004826a1
add esp, 4
mov eax, dword [esp + 0x84]
xor esi, esi
cmp eax, ebx
mov edi, 0xf
mov dword [esp + 0xa0], edi
mov dword [esp + 0x9c], esi
mov byte [esp + 0x8c], 0
mov byte [esp + 0xcc], 2
jb 0x40252b
mov eax, dword [esp + 0x70]
push eax
call fcn.004826a1
add esp, 4
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x84], edi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x80], esi
mov byte [esp + 0x70], 0
mov ebp, 0xf
lea ecx, [esp + 0xa4]
push ecx
push ebx
push edi
call fcn.004014f0
mov edi, eax
add esp, 0xc
test edi, edi
mov dword [esp + 0x28], edi
jne 0x4021b0
mov dword [esp + 0x10], 0
mov edx, dword [esp + 0x10]
mov ecx, dword [edx + 0x4b13c8]
test ecx, ecx
je 0x402741
mov eax, ecx
mov dword [esp + 0x84], 0xf
mov dword [esp + 0x80], 0
mov byte [esp + 0x70], 0
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4025a5
sub eax, esi
push eax
push ecx
lea ecx, [esp + 0x74]
call fcn.00404760
mov ebp, dword [esp + 0x18]
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0xd0], 7
call fcn.00404250
cmp eax, dword [esp + 0x18]
mov dword [esp + 0x20], eax
je 0x40263f
cmp dword [eax + 0x24], 0x10
mov ebx, dword [eax + 0x20]
jb 0x4025eb
mov eax, dword [eax + 0x10]
jmp 0x4025ee
add eax, 0x10
mov ecx, dword [esp + 0x80]
cmp ecx, ecx
mov edx, ecx
jae 0x4025fb
test edx, edx
je 0x40262a
cmp edx, ebx
mov ecx, edx
jb 0x402607
mov ecx, ebx
cmp dword [esp + 0x84], 0x10
mov esi, dword [esp + 0x70]
jae 0x402619
lea esi, [esp + 0x70]
mov edi, eax
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x402626
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x402637
cmp edx, ebx
jb 0x40263f
xor eax, eax
cmp edx, ebx
setne al
test eax, eax
jl 0x40263f
lea eax, [esp + 0x20]
jmp 0x40264b
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
lea eax, [esp + 0x24]
mov ecx, dword [eax]
mov eax, dword [esp + 0x84]
cmp ecx, ebp
setne bl
cmp eax, 0x10
mov byte [esp + 0xcc], 2
jb 0x402673
mov edx, dword [esp + 0x70]
push edx
call fcn.004826a1
add esp, 4
xor ebp, ebp
test bl, bl
mov eax, 0xf
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], ebp
mov byte [esp + 0x70], 0
je 0x402736
mov edi, dword [esp + 0x10]
mov ecx, dword [edi + 0x4b13c8]
mov dword [esp + 0xa0], eax
mov eax, ecx
mov dword [esp + 0x9c], ebp
mov byte [esp + 0x8c], 0
lea esi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4026c0
sub eax, esi
push eax
push ecx
lea ecx, [esp + 0x90]
call fcn.00404760
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0xd0], 8
call fcn.00407500
mov ecx, dword [eax]
cmp dword [esp + 0xa0], 0x10
mov dword [edi + 0x4b1878], ecx
mov byte [esp + 0xcc], 2
jb 0x40271a
mov edx, dword [esp + 0x8c]
push edx
call fcn.004826a1
add esp, 4
mov dword [esp + 0xa0], 0xf
mov dword [esp + 0x9c], ebp
mov byte [esp + 0x8c], 0
jmp 0x402741
mov eax, dword [esp + 0x10]
mov dword [eax + 0x4b1878], ebp
int3
mov eax, dword [esp + 0x10]
add eax, 4
cmp eax, 0x4b0
mov dword [esp + 0x10], eax
jl 0x402573
mov eax, dword [esp + 0x18]
mov byte [0x4b1d29], 1
mov ecx, dword [eax]
push eax
push ecx
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x20]
mov byte [esp + 0xd8], 1
call fcn.00406600
mov edx, dword [esp + 0x18]
push edx
call fcn.004826a1
add esp, 4
xor eax, eax
pop edi
pop esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
cmp dword [esp + 0xb4], 0x10
pop ebp
pop ebx
jb 0x4027b1
mov eax, dword [esp + 0x98]
push eax
call fcn.004826a1
add esp, 4
mov ecx, dword [esp + 0xb4]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0xb0]
call fcn.0046bf5e
add esp, 0xc0
ret