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

Disassembly:
sub esp, 0xc4
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 0x18]
xor ebp, ebp
cmp eax, ebp
mov dword [esp + 0x3c], esi
je 0x49067c
cmp dword [eax + 0x78], 4
jne 0x49067c
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], SysStringLen
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], ebp
mov byte [esp + 0x2c], 0
mov edx, dword [eax + 0x74]
mov ecx, dword [eax + 0x68]
mov eax, dword [eax + 0x70]
push ebx
push edx
push ebp
mov dword [esp + 0x58], ecx
push eax
lea ecx, [esp + 0x1c]
call fcn.0049cc10
mov ecx, dword [esi + 0x18]
mov bl, byte [ecx + 0x7e]
xor edx, edx
cmp bl, 0x21
sete dl
lea eax, [esp + 0xb4]
push eax
lea ecx, [esp + 0x14]
mov dword [esp + 0x4c], edx
call fcn.0049e7c0
mov eax, dword [esp + 0xd4]
cmp eax, ebp
jne 0x4902e9
lea eax, [esi + 0x30]
lea ecx, [esp + 0xb4]
push ecx
push eax
mov edx, ecx
push edx
call fcn.0043e660
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x1c]
add esp, 0xc
cmp eax, ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0xc], ebp
je 0x490328
cmp dword [eax + 0xc], ebp
jbe 0x490328
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0xc], edx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dl, byte [eax + ecx]
inc eax
mov dword [esp + 0x14], eax
mov cl, byte [eax + ecx]
inc eax
mov dword [esp + 0x14], eax
movzx eax, cl
movzx edx, dl
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0x2c]
push edi
xor edi, edi
cmp eax, ebp
mov dword [esp + 0x50], edx
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], ebp
mov byte [esp + 0x94], 0
je 0x49038f
mov eax, dword [eax + 8]
cmp eax, ebp
je 0x49038f
mov eax, dword [eax + 0x3e0]
jmp 0x490391
xor eax, eax
push eax
lea ecx, [esp + 0x9c]
push ecx
call fcn.0043ea70
add esp, 8
cmp edi, ebp
jne 0x49057a
lea ecx, [esp + 0x14]
call fcn.0049d070
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov al, byte [ecx + esi]
movzx ebx, al
inc ecx
cmp ebx, ebp
mov dword [esp + 0x18], ecx
je 0x490655
mov eax, ebx
and eax, 8
mov dword [esp + 0x40], eax
je 0x490529
lea eax, [ecx + esi]
add ecx, 2
xor edx, edx
mov dword [esp + 0x18], ecx
mov dh, byte [eax + 1]
mov ecx, dword [esp + 0x54]
mov dl, byte [eax]
push edx
call fcn.0049dc20
mov edi, eax
cmp edi, ebp
mov dword [esp + 0x5c], edi
je 0x49066d
cmp dword [edi + 0x78], 3
jne 0x49066d
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
test bl, 4
je 0x490445
mov eax, dword [esp + 0x4c]
push eax
lea ecx, [esp + 0xb8]
push ecx
lea ecx, [esp + 0x1c]
call fcn.0049cd60
mov edx, dword [eax]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x60], edx
test bl, 1
je 0x49046a
lea eax, [ecx + esi]
xor edx, edx
add ecx, 2
mov dword [esp + 0x18], ecx
mov dh, byte [eax + 1]
movzx eax, byte [eax]
movsx edx, dx
or edx, eax
mov dword [esp + 0xa8], edx
xor ebp, ebp
test bl, 2
je 0x49048d
lea eax, [ecx + esi]
add ecx, 2
xor edx, edx
mov dword [esp + 0x18], ecx
mov dh, byte [eax + 1]
movzx eax, byte [eax]
movsx edx, dx
or edx, eax
mov dword [esp + 0xac], edx
cmp dword [esp + 0x40], ebp
je 0x490562
lea edx, [ecx + esi]
xor eax, eax
add ecx, 2
mov dword [esp + 0x18], ecx
mov ah, byte [edx + 1]
mov ebp, 0x400
mov dword [esp + 0x3c], 0x44800000
mov al, byte [edx]
mov dword [esp + 0x70], eax
cmp byte [edi + 0x7e], 0x4b
jne 0x4904cc
mov ebp, 0x5000
mov dword [esp + 0x3c], 0x46a00000
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0x2c]
test eax, eax
je 0x49053a
mov eax, dword [eax + 8]
test eax, eax
je 0x49053a
mov edx, dword [eax + 0x3e0]
test edx, edx
je 0x49053a
mov ecx, edx
call fcn.004b5390
test al, al
je 0x490532
fld dword [0x5f6864]
mov eax, dword [esp + 0x70]
test eax, eax
fdiv dword [esp + 0x3c]
fild dword [esp + 0x70]
jge 0x49050f
fadd dword [0x5fb11c]
mov ecx, dword [esp + 0x18]
fmulp st(1)
mov esi, dword [esp + 0x14]
fst dword [esp + 0xa4]
fstp dword [esp + 0x98]
jmp 0x490560
mov edi, dword [esp + 0x5c]
jmp 0x490418
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, 0x10000
cdq
idiv ebp
mov dword [esp + 0xb0], 0
imul eax, dword [esp + 0x70]
mov dword [esp + 0xa4], eax
mov dword [esp + 0x98], eax
xor ebp, ebp
mov al, byte [ecx + esi]
inc ecx
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x14]
movzx edi, al
call fcn.0049d060
mov dword [esp + 0x6c], ebp
mov ecx, dword [esp + 0x18]
cmp ecx, ebp
jl 0x49066d
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
je 0x49059a
add eax, 3
cmp ecx, eax
jg 0x49066d
mov ecx, dword [esp + 0x50]
push ecx
lea ecx, [esp + 0x18]
call fcn.0049d0a0
mov edx, dword [esp + 0x48]
push edx
lea ecx, [esp + 0x18]
mov dword [esp + 0x68], eax
call fcn.0049d130
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x10]
cmp eax, ebp
mov byte [esp + 0x94], 0
jbe 0x4905f4
mov esi, eax
mov eax, dword [esp + 0x38]
mov cl, byte [eax]
dec esi
inc eax
test cl, cl
mov dword [esp + 0x10], esi
mov dword [esp + 0x38], eax
mov byte [esp + 0x94], 1
jne 0x4905f4
mov byte [esp + 0x94], 0
lea edx, [esp + 0x78]
push edx
lea eax, [esp + 0xbc]
push eax
lea ecx, [esp + 0xa0]
push ecx
call fcn.0043e660
mov edx, dword [esp + 0xec]
push edx
lea eax, [esp + 0x68]
push eax
call dword [esp + 0xf0]
add esp, 0x14
test al, al
je 0x49066d
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0xa8]
mov eax, dword [esp + 0x68]
add esi, ecx
mov ecx, dword [esp + 0x6c]
dec edi
inc ecx
inc eax
mov dword [esp + 0xa8], esi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], eax
jmp 0x4903a2
lea ecx, [esp + 0x14]
call fcn.0049d070
pop edi
pop ebx
pop esi
mov al, 1
pop ebp
add esp, 0xc4
ret 0xc
pop edi
pop ebx
pop esi
xor al, al
pop ebp
add esp, 0xc4
ret 0xc
pop esi
xor al, al
pop ebp
add esp, 0xc4
ret 0xc