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

Disassembly:
sub esp, 0x98
cmp word [esp + 0xa4], 0
xorps xmm0, xmm0
push ebx
push ebp
mov ebp, ecx
mov dword [esp + 0x2c], edx
push esi
push edi
mov dword [esp + 0x30], ebp
mov eax, dword [ebp]
mov dword [esp + 0x2c], 0
movlpd qword [esp + 0x78], xmm0
mov eax, dword [eax]
mov dword [esp + 0x58], eax
je 0x492b63
test byte [eax + 0x3c], 0x80
jne 0x4932c2
movzx eax, word [edx]
mov dword [esp + 0x88], eax
cmp eax, 0x3f
ja 0x4932c2
mov edi, dword [esp + 0x7c]
xor edx, edx
movzx ebx, ax
xor esi, esi
mov eax, ebx
movlpd qword [esp + 0x70], xmm0
bts edx, eax
movlpd qword [esp + 0x68], xmm0
cmp eax, 0x20
mov dword [esp + 0x38], ebx
mov cl, 1
mov dword [esp + 0x18], edi
cmovae esi, edx
mov dword [esp + 0x24], ecx
xor edx, esi
cmp eax, 0x40
mov eax, dword [esp + 0x74]
cmovae esi, edx
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x70]
add edx, 0xffffffff
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x6c]
adc esi, 0xffffffff
mov dword [esp + 0x84], edx
xor edx, edx
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x78]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x44], edx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x4c], eax
nop dword [eax]
mov eax, dword [esp + 0x48]
cmp edi, eax
ja 0x493241
jb 0x492c0b
cmp esi, dword [esp + 0x84]
jae 0x493248
movzx eax, word [esp + 0xb4]
cmp edx, eax
jg 0x49323d
test edx, edx
jle 0x492c41
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x4c]
or ebp, dword [edx + 8]
mov dword [esp + 0x4c], ebp
mov ebp, dword [esp + 0x50]
or ebp, dword [edx + 0xc]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x30]
cmp edx, eax
jge 0x492c54
mov eax, dword [esp + 0xac]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + edx*4]
jmp 0x492c5b
mov eax, dword [esp + 0xb8]
mov edx, dword [eax + 0x24]
mov dword [esp + 0x2c], eax
test edx, 0x400
jne 0x493237
movzx eax, byte [eax + 0x10]
lea ecx, [eax + eax*4]
mov eax, dword [ebp + 4]
shl ecx, 4
mov eax, dword [ecx + eax + 0x38]
mov dword [esp + 0x54], eax
xor eax, eax
mov dword [esp + 0x3c], eax
test ebx, ebx
je 0x492dd7
xor edx, edx
mov dword [esp + 0x28], edx
xor ebx, ebx
xor ebp, ebp
bts ebx, eax
cmp eax, 0x20
cmovae ebp, ebx
xor ebx, ebp
cmp eax, 0x40
mov ecx, ebx
cmovae ebp, ebx
and ecx, esi
mov eax, ebp
and eax, edi
or ecx, eax
jne 0x492db2
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 4]
mov esi, dword [edx + eax]
test esi, esi
je 0x492cf2
nop word [eax + eax]
mov eax, dword [esi + 4]
test eax, 0x1000
je 0x492cf2
test eax, 0x40000
je 0x492ceb
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 4]
mov esi, dword [eax]
jmp 0x492cee
mov esi, dword [esi + 0xc]
test esi, esi
jne 0x492cd0
cmp byte [esi], 0x9a
jne 0x492dae
mov edx, dword [esp + 0x54]
cmp dword [esi + 0x1c], edx
jne 0x492dae
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
not eax
push 0
push 0x182
not ecx
push eax
movsx eax, word [esi + 0x20]
push ecx
mov ecx, dword [esp + 0x40]
push eax
add ecx, 0x148
call fcn.0048f350
mov edi, eax
add esp, 0x14
test edi, edi
je 0x492daa
test byte [edi + 0x12], 0x82
je 0x492d94
cmp word [esi + 0x20], 0
jl 0x492d94
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x28]
mov edx, dword [eax + edx]
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
call fcn.0044fb40
test eax, eax
jne 0x492d6b
mov eax, dword [esp + 0x58]
mov eax, dword [eax + 8]
mov esi, dword [eax]
mov eax, dword [esp + 0x30]
mov edx, dword [edi]
mov ecx, dword [eax]
call fcn.0044fb40
test eax, eax
jne 0x492d85
mov eax, dword [esp + 0x58]
mov eax, dword [eax + 8]
push dword [eax]
push esi
call fcn.004221d0
add esp, 8
test eax, eax
jne 0x492daa
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
or esi, ebx
or edi, ebp
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], edi
jmp 0x492db2
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
add dword [esp + 0x28], 0x18
inc eax
mov edx, dword [esp + 0x28]
mov dword [esp + 0x3c], eax
cmp eax, dword [esp + 0x38]
jl 0x492c97
mov ebp, dword [esp + 0x2c]
mov edx, dword [ebp + 0x24]
jmp 0x492ddb
mov ebp, dword [esp + 0x2c]
test edx, 0x1000
jne 0x4930fa
test edx, 0x100
je 0x492e01
xor ebx, ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x80], ebx
lea eax, [ebx + 1]
jmp 0x492e32
mov ebx, dword [ebp + 0x1c]
mov dword [esp + 0x28], ebx
test ebx, ebx
je 0x4932c2
test byte [ebx + 0x38], 4
jne 0x4932c2
movzx eax, word [ebx + 0x32]
cmp byte [ebx + 0x36], 0
mov dword [esp + 0x80], eax
movzx eax, word [ebx + 0x34]
setne byte [esp + 0x24]
movzx eax, ax
xor cl, cl
xor edx, edx
mov byte [esp + 0x23], 0
mov byte [esp + 0x22], 0
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x78], eax
test eax, eax
je 0x4930fa
mov dword [esp + 0x5c], edx
nop dword [eax + eax]
movzx ecx, word [ebp + 0x18]
cmp edx, ecx
jge 0x492e9d
cmp word [ebp + 0x2a], 0
jne 0x492e9d
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + edx*4]
movzx eax, word [eax + 0x12]
test eax, 0x182
je 0x492e9d
test eax, 0x100
mov ecx, 0
mov eax, dword [esp + 0x24]
movzx eax, al
cmove ecx, eax
mov byte [esp + 0x24], cl
jmp 0x4930dd
test ebx, ebx
je 0x492ebf
mov eax, dword [ebx + 4]
movsx ebp, word [eax + edx*2]
mov eax, dword [ebx + 0x1c]
mov al, byte [edx + eax]
mov byte [esp + 0x17], al
mov eax, dword [ebx + 0xc]
movsx eax, word [eax + 0x20]
cmp ebp, eax
jne 0x492ec7
jmp 0x492ec4
mov byte [esp + 0x17], 0
or ebp, 0xffffffff
cmp byte [esp + 0x24], 0
je 0x492efa
test ebp, ebp
js 0x492efa
cmp edx, ecx
jl 0x492efa
mov eax, dword [ebx + 0xc]
lea ecx, [ebp*2]
mov edx, dword [esp + 0x24]
add ecx, ebp
xor esi, esi
movzx edx, dl
mov eax, dword [eax + 4]
cmp byte [eax + ecx*8 + 0x14], 0
cmove edx, esi
mov dword [esp + 0x24], edx
xor esi, esi
mov bh, 1
xor edi, edi
cmp esi, dword [esp + 0x38]
jge 0x493014
xor ecx, ecx
mov eax, esi
bts ecx, eax
xor edx, edx
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
mov dword [esp + 0x68], ecx
cmovae edx, ecx
and ecx, dword [esp + 0x1c]
mov eax, edx
mov dword [esp + 0x70], edx
and eax, dword [esp + 0x18]
or ecx, eax
jne 0x493008
mov edx, dword [esp + 0x34]
mov ecx, dword [edx + 4]
mov ecx, dword [edi + ecx]
test ecx, ecx
je 0x492f72
nop dword [eax]
mov eax, dword [ecx + 4]
test eax, 0x1000
je 0x492f72
test eax, 0x40000
je 0x492f6b
mov eax, dword [ecx + 0x14]
mov ecx, dword [eax + 4]
mov ecx, dword [ecx]
jmp 0x492f6e
mov ecx, dword [ecx + 0xc]
test ecx, ecx
jne 0x492f50
mov eax, dword [esp + 0xb0]
and eax, 0x300
neg eax
sbb al, al
and bh, al
mov bl, bh
cmp ebp, 0xffffffff
jl 0x492fa3
cmp byte [ecx], 0x9a
jne 0x493008
mov eax, dword [esp + 0x54]
cmp dword [ecx + 0x1c], eax
jne 0x493008
movsx eax, word [ecx + 0x20]
cmp eax, ebp
jne 0x493008
jmp 0x492fc8
mov eax, dword [esp + 0x28]
push dword [esp + 0x54]
mov eax, dword [eax + 0x28]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x60]
mov edx, dword [edx + eax]
call fcn.00456530
add esp, 4
test eax, eax
jne 0x493008
mov edx, dword [esp + 0x34]
test ebp, ebp
js 0x493044
mov edx, dword [edx + 4]
mov eax, dword [esp + 0x30]
mov edx, dword [edi + edx]
mov ecx, dword [eax]
call fcn.0044fb40
mov ecx, eax
test ecx, ecx
jne 0x492fea
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x28]
mov bh, bl
mov edx, dword [esp + 0x40]
mov eax, dword [eax + 0x20]
push dword [eax + edx*4]
push dword [ecx]
call fcn.004221d0
add esp, 8
test eax, eax
je 0x493044
inc esi
add edi, 0x18
test bh, bh
jne 0x492f00
mov edx, dword [esp + 0x40]
test edx, edx
je 0x49302a
mov eax, dword [esp + 0x80]
movzx eax, ax
cmp edx, eax
jge 0x49302f
mov byte [esp + 0x24], 0
cmp byte [esp + 0x3c], 0
je 0x4930fa
mov byte [esp + 0x24], 1
jmp 0x493105
test dword [esp + 0xb0], 0x100
jne 0x4930a8
cmp byte [esp + 0x23], 0
lea ecx, [esi + esi*2]
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 4]
mov al, byte [eax + ecx*8 + 0xc]
je 0x493074
mov cl, byte [esp + 0x17]
xor cl, byte [esp + 0x22]
cmp cl, al
jne 0x493014
jmp 0x4930a8
xor al, byte [esp + 0x17]
mov byte [esp + 0x22], al
je 0x4930a3
mov eax, dword [esp + 0x44]
xor ecx, ecx
bts ecx, eax
xor edx, edx
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
mov eax, dword [esp + 0xbc]
cmovae edx, ecx
or dword [eax], ecx
or dword [eax + 4], edx
mov byte [esp + 0x23], 1
mov eax, dword [esp + 0x3c]
test ebp, ebp
mov edx, dword [esp + 0x40]
mov ecx, 1
mov ebp, dword [esp + 0x2c]
movzx eax, al
cmovs eax, ecx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1c]
or eax, dword [esp + 0x68]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
or eax, dword [esp + 0x70]
mov dword [esp + 0x18], eax
add dword [esp + 0x5c], 0x18
inc edx
mov dword [esp + 0x40], edx
cmp edx, dword [esp + 0x78]
jge 0x49302f
mov ebx, dword [esp + 0x28]
jmp 0x492e60
cmp byte [esp + 0x24], 0
je 0x493210
mov eax, dword [esp + 0x2c]
xor ebx, ebx
mov ecx, dword [esp + 0x60]
or ecx, dword [eax + 8]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x64]
or ecx, dword [eax + 0xc]
mov dword [esp + 0x64], ecx
cmp dword [esp + 0x38], ebx
jbe 0x493210
mov edx, dword [esp + 0x18]
xor ebp, ebp
xor esi, esi
mov eax, ebx
bts esi, eax
xor edi, edi
cmp eax, 0x20
cmovae edi, esi
xor esi, edi
cmp eax, 0x40
mov ecx, esi
cmovae edi, esi
and ecx, dword [esp + 0x1c]
mov eax, edi
and eax, edx
or ecx, eax
jne 0x493202
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
add ecx, 0x44
mov eax, dword [eax + 4]
mov eax, dword [eax + ebp]
mov edx, eax
mov dword [esp + 0x78], eax
call fcn.0048ebc0
mov ecx, edx
mov dword [esp + 0x70], eax
or eax, ecx
mov dword [esp + 0x68], ecx
jne 0x4931de
mov edx, dword [esp + 0x78]
lea ecx, [esp + 0x8c]
xorps xmm0, xmm0
mov dword [esp + 0xa4], eax
movups xmmword [esp + 0x8c], xmm0
mov dword [esp + 0x8c], 0x4516a0
movq qword [esp + 0x9c], xmm0
mov byte [esp + 0xa0], 1
mov dword [esp + 0x90], 0x4517b0
mov dword [esp + 0xa4], eax
call fcn.0044d9f0
cmp byte [esp + 0xa0], 0
je 0x4931fe
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
not ecx
and ecx, dword [esp + 0x70]
not eax
and eax, dword [esp + 0x68]
or ecx, eax
jne 0x4931fe
or dword [esp + 0x1c], esi
or dword [esp + 0x18], edi
mov edx, dword [esp + 0x18]
inc ebx
add ebp, 0x18
cmp ebx, dword [esp + 0x38]
jl 0x493131
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x24]
inc edx
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x30]
mov dword [esp + 0x44], edx
test cl, cl
jne 0x492bf0
jmp 0x49323d
cmp byte [eax + 0x1d], 0
jne 0x49324e
mov eax, dword [esp + 0x48]
cmp esi, dword [esp + 0x84]
jne 0x493260
cmp edi, eax
jne 0x493260
mov al, byte [esp + 0x88]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret
test cl, cl
jne 0x4932b5
dec ebx
test ebx, ebx
jle 0x4932c2
nop dword [eax]
xor ecx, ecx
xor edx, edx
mov eax, ebx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
add ecx, 0xffffffff
mov eax, ecx
adc edx, 0xffffffff
and eax, esi
mov esi, edx
and esi, edi
cmp eax, ecx
jne 0x49329d
cmp esi, edx
je 0x4932a8
dec ebx
test ebx, ebx
jle 0x4932c2
mov esi, dword [esp + 0x1c]
jmp 0x493270
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret
or al, 0xff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x98
ret