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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
xor edx, edx
mov dword [esp + 0x48], esi
mov dword [esp + 0x50], edi
mov dword [esp + 0x8c], edx
test byte [esi + 0x1c], 0x80
mov eax, dword [edi]
mov ebx, dword [edi + 8]
mov dword [esp + 0x44], eax
movsx eax, word [esi + 0x22]
mov dword [esp + 0x60], edx
mov byte [esp + 0x17], dl
mov dword [esp + 0x7c], edx
mov dword [esp + 0x70], edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0x64], edx
mov dword [esp + 0x84], edx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x24], eax
jne 0x492fd6
mov dword [esp + 0x30], edx
mov dword [esp + 0x78], 1
jmp 0x492fe9
mov ecx, esi
call fcn.004877d3
mov dword [esp + 0x30], eax
movzx eax, word [eax + 0x32]
mov dword [esp + 0x78], eax
test dword [esi + 0x1c], 0x800
mov cl, byte [ebp + 0x20]
mov dword [esp + 0x40], ecx
je 0x493243
mov eax, edx
mov dword [esp + 0xc], edx
mov ecx, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], ecx
and dword [esp + 0x34], 0
cmp dword [esp + 0x24], 0
jle 0x493151
xor ecx, ecx
mov dword [esp + 0x18], ecx
mov edx, dword [esi + 4]
add edx, ecx
mov dword [esp + 0x20], edx
mov ecx, dword [edx + 4]
and ecx, 0xf
mov dword [esp + 0x1c], ecx
je 0x49312d
movsx eax, word [esi + 0x20]
cmp dword [esp + 0x34], eax
je 0x493129
movzx eax, word [edx + 0xe]
and eax, 0x60
mov dword [esp + 0x38], eax
je 0x49306d
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x49306d
mov edx, dword [esp + 0xc]
inc edx
mov dword [esp + 0xc], edx
jmp 0x493131
cmp dword [ebp + 0x2c], 0
mov eax, dword [esp + 0x34]
je 0x49308f
mov edi, dword [ebp + 0x2c]
cmp dword [edi + eax*4], 0
mov edi, dword [esp + 0x50]
jge 0x49308f
cmp dword [esp + 0x38], 0
je 0x493129
cmp byte [esp + 0x40], 0xb
je 0x4930be
mov ecx, dword [esp + 0x40]
movzx ecx, cl
mov dword [esp + 0x1c], ecx
cmp ecx, 5
jne 0x4930ca
cmp dword [esp + 0x10], 0
jne 0x4930b5
xor ecx, ecx
cmp word [edx + 0xc], cx
jne 0x4930d8
push 2
pop ecx
mov dword [esp + 0x1c], ecx
jmp 0x4930d8
cmp ecx, 0xb
jne 0x4930a1
push 2
pop ecx
mov dword [esp + 0x1c], ecx
cmp dword [esp + 0x10], 0
je 0x4930d8
cmp dword [esp + 0x38], 0
je 0x493129
mov edx, eax
mov ecx, esi
call fcn.0048780b
mov ecx, dword [ebp + 0x14]
cwde
inc ecx
add ecx, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x38], ecx
sub eax, 1
je 0x4931f5
sub eax, 1
je 0x4931e7
sub eax, 1
je 0x4931f5
dec eax
sub eax, 1
je 0x49319c
xor eax, eax
push eax
push dword [ebp + 0x24]
push ecx
push 0x32
pop edx
mov ecx, ebx
call fcn.0046b9a1
add esp, 0xc
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x34]
add dword [esp + 0x18], 0x10
inc ecx
cmp ecx, dword [esp + 0x24]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x18]
jl 0x493023
mov ecx, dword [esp + 0x2c]
test edx, edx
jne 0x49315d
test ecx, ecx
je 0x49323f
test eax, eax
jne 0x49323f
inc eax
mov dword [esp + 0x10], eax
test ecx, ecx
jle 0x49300d
test byte [esi + 0x1c], 0x60
je 0x49300d
mov edx, dword [ebp + 0x14]
mov ecx, edi
push esi
lea edx, [edx + 1]
call fcn.00491c0f
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
pop ecx
mov ecx, dword [esp + 0x2c]
jmp 0x49300d
xor eax, eax
push eax
push eax
push ecx
push 0x33
pop edx
mov ecx, ebx
call fcn.0046b9a1
mov ecx, dword [esp + 0x54]
add esp, 0xc
inc dword [esp + 0x2c]
mov esi, eax
mov edx, dword [esp + 0x20]
push dword [esp + 0x38]
call fcn.004872d4
mov edx, eax
mov ecx, edi
call fcn.0048081b
pop ecx
mov edx, esi
mov ecx, ebx
call fcn.0046c1e8
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
mov esi, dword [esp + 0x48]
jmp 0x493129
cmp dword [edi + 0x78], 0
mov eax, edi
cmovne eax, dword [edi + 0x78]
mov byte [eax + 0x15], 1
mov eax, dword [esp + 0x20]
push dword [eax]
push dword [esi]
push str._s._s
push dword [esp + 0x50]
call fcn.00452d1e
push dword [esp + 0x48]
mov ecx, ebx
mov esi, eax
push dword [esp + 0x30]
push 0x513
push 0x45
pop edx
call fcn.0046b9a1
add esp, 0x1c
mov edx, esi
mov ecx, ebx
push 0xfffffffffffffffa
call fcn.0046c19c
pop ecx
xor edx, edx
mov ecx, ebx
inc edx
call fcn.0046bf17
jmp 0x4931de
mov ecx, dword [esp + 0x40]
mov edx, dword [esi + 0x10]
mov dword [esp + 0x28], edx
test edx, edx
je 0x49339a
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x20]
and eax, 0x200
or eax, 0
jne 0x49339a
mov eax, dword [ebp + 0x14]
cmp byte [esp + 0x40], 0xb
not eax
mov dword [edi + 0x34], eax
movzx eax, cl
push 2
pop ecx
cmovne ecx, eax
xor eax, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
cmp dword [edx], eax
jle 0x493395
lea eax, [edx + 0xc]
mov dword [esp + 0x18], eax
mov edx, dword [ebp + 0x2c]
mov ecx, dword [eax - 4]
mov dword [esp + 0x88], ecx
test edx, edx
je 0x4932ba
movzx eax, byte [ebp + 0x1c]
push eax
call fcn.00492f16
pop ecx
test eax, eax
je 0x493373
cmp byte [esp + 0x17], 0
jne 0x4932d5
mov eax, dword [ebp + 0x14]
mov edx, esi
inc eax
mov ecx, ebx
push eax
call fcn.00491a80
pop ecx
mov byte [esp + 0x17], 1
dec dword [edi + 0x38]
xor eax, eax
mov edx, dword [esp + 0x88]
mov ecx, dword [edi + 0x38]
mov dword [esp + 0x2c], ecx
test edx, edx
je 0x4932fd
mov ecx, dword [esp + 0x44]
push eax
push eax
call fcn.0047cd6c
pop ecx
pop ecx
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x38], eax
cmp byte [edx + 0x57], 0
jne 0x493318
push 0x10
push ecx
push eax
push edi
call fcn.00480b20
add esp, 0x10
mov edx, dword [esp + 0x38]
test edx, edx
je 0x493329
mov ecx, dword [esp + 0x44]
call fcn.0047cbeb
mov eax, dword [esp + 0x20]
push 4
pop ecx
cmp eax, ecx
jne 0x493340
mov edx, dword [ebp + 0x24]
mov ecx, ebx
call fcn.0046b9fa
jmp 0x493368
push 2
pop ecx
cmp eax, 5
mov edx, 0x113
push 3
cmove eax, ecx
xor ecx, ecx
push ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x28], eax
push dword [ecx]
mov ecx, edi
push eax
call fcn.0048bf76
add esp, 0x10
mov edx, dword [esp + 0x2c]
mov ecx, ebx
call fcn.0046bd45
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
inc edx
mov eax, dword [esp + 0x18]
add eax, 0x14
mov dword [esp + 0x24], edx
mov dword [esp + 0x18], eax
cmp edx, dword [ecx]
jl 0x493296
xor eax, eax
mov dword [edi + 0x34], eax
jmp 0x49339c
xor eax, eax
mov edx, dword [ebp + 0x30]
mov ecx, dword [esi + 8]
mov dword [esp + 0x38], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x2c], ecx
test edx, edx
je 0x4934bd
cmp dword [edx], eax
jne 0x4933e1
mov cl, byte [edx + 0x14]
xor eax, eax
test cl, cl
cmovne eax, edx
mov dword [ebp + 0x30], eax
setne al
lea eax, [eax*2 + 4]
mov dword [esp + 0x40], eax
jmp 0x4934bd
test ecx, ecx
je 0x4934bd
mov ecx, dword [ecx + 0x14]
inc eax
test ecx, ecx
jne 0x4933e9
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
imul eax, eax, 0xa
push ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x3c], 1
push eax
call fcn.00450fbe
pop ecx
pop ecx
mov ecx, eax
mov dword [esp + 0x34], ecx
test ecx, ecx
je 0x4940d3
mov eax, dword [esp + 0x28]
lea ebx, [ecx + eax*8]
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x28], ebx
mov edx, eax
mov dword [eax + 0x18], ecx
xor ecx, ecx
mov dword [esp + 0x24], ecx
cmp dword [edx], ecx
je 0x493483
cmp dword [edx + 0x1c], 0
je 0x49347c
mov eax, dword [esi + 8]
jmp 0x493450
cmp eax, dword [edx + 0x1c]
je 0x493454
mov eax, dword [eax + 0x14]
inc ecx
test eax, eax
jne 0x493447
cmp byte [ecx + ebx], 0
jne 0x49347a
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x34]
mov byte [ecx + ebx], 1
mov dword [esi + edi*8], eax
mov eax, edi
mov edi, esi
mov esi, dword [esp + 0x48]
mov dword [edi + eax*8 + 4], ecx
inc eax
mov dword [esp + 0x24], eax
xor ecx, ecx
mov edx, dword [edx + 0x10]
test edx, edx
jne 0x493438
mov eax, dword [esi + 8]
mov edx, ecx
mov ebx, dword [esp + 0x74]
mov edi, dword [esp + 0x50]
test eax, eax
je 0x4934bd
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
lea ecx, [ebx + ecx*8]
mov ebx, dword [esp + 0x28]
cmp byte [edx + ebx], 0
jne 0x4934b1
mov dword [ecx], eax
mov dword [ecx + 4], edx
add ecx, 8
mov eax, dword [eax + 0x14]
inc edx
test eax, eax
jne 0x4934a3
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x44]
xor edx, edx
mov ecx, dword [eax + 0x20]
mov eax, dword [eax + 0x24]
mov dword [esp + 0x94], eax
mov eax, ecx
and eax, 0x6000
or eax, edx
jne 0x4934e5
mov dword [esp + 0x68], edx
mov dword [esp + 0x5c], edx
jmp 0x49355c
and ecx, 0x2000
or ecx, edx
push edx
mov ecx, edi
push edx
je 0x493521
push 0x80
mov edx, esi
call fcn.004a2d5d
add esp, 0xc
mov dword [esp + 0x68], eax
test eax, eax
jne 0x493536
push eax
push eax
mov edx, esi
mov ecx, edi
call fcn.00490fb1
pop ecx
pop ecx
test eax, eax
jne 0x493536
mov dword [esp + 0x5c], eax
jmp 0x49355c
mov dword [esp + 0x70], edx
mov edx, esi
call fcn.00490fb1
mov dword [esp + 0x64], eax
pop ecx
pop ecx
test eax, eax
je 0x49355c
inc dword [edi + 0x2c]
xor ecx, ecx
mov eax, dword [edi + 0x2c]
push ecx
push eax
push ecx
push 0x47
pop edx
mov ecx, ebx
mov dword [esp + 0x68], eax
call fcn.0046b9a1
add esp, 0xc
dec dword [edi + 0x38]
mov eax, dword [edi + 0x38]
mov dword [esp + 0x64], eax
cmp byte [ebp + 0x1c], 0
mov dword [esp + 0x28], 6
je 0x4937d2
cmp dword [esp + 0x30], 0
jne 0x4937d2
dec dword [edi + 0x38]
mov eax, dword [edi + 0x38]
mov edx, dword [esp + 0x40]
mov dword [esp + 0x18], eax
movzx eax, byte [esi + 0x2a]
cmp dl, 0xb
je 0x493595
movzx eax, dl
jmp 0x49359e
push 2
cmp eax, 0xb
pop ecx
cmove eax, ecx
mov ecx, dword [ebp + 0x30]
mov dword [esp + 0x1c], eax
test ecx, ecx
je 0x4935f7
mov edx, ecx
xor eax, eax
cmp dword [edx], eax
je 0x4935bd
cmp dword [edx + 0x1c], eax
je 0x4935bd
mov edx, dword [edx + 0x10]
test edx, edx
jne 0x4935ad
mov dword [esp + 0x60], edx
test edx, edx
je 0x4935db
cmp byte [edx + 0x14], 0
push 4
pop eax
cmovne eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
cmp edx, ecx
je 0x493601
xor eax, eax
push eax
push eax
push eax
push 9
pop edx
mov ecx, ebx
call fcn.0046b9a1
mov ecx, eax
add esp, 0xc
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x70], ecx
jmp 0x493605
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x70]
jmp 0x493609
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x40]
cmp eax, 5
jne 0x493635
cmp dl, al
je 0x493635
xor eax, eax
cmp dword [esi + 8], eax
je 0x493635
test ecx, ecx
jne 0x493635
push eax
push eax
push eax
push 9
pop edx
mov ecx, ebx
call fcn.0046b9a1
add esp, 0xc
inc eax
mov dword [esp + 0x80], eax
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x49365f
push eax
push dword [esp + 0x1c]
mov ecx, ebx
push dword [ebp + 0x14]
push 0x35
pop eax
mov edx, eax
call fcn.0046b9a1
add esp, 0xc
mov edx, 0x90
mov ecx, ebx
call fcn.0046bf17
push dword [ebp + 0x14]
mov ecx, ebx
push dword [esp + 0x1c]
push dword [ebp + 0xc]
push 0x1f
pop edx
call fcn.0046b9a1
mov eax, dword [esp + 0x28]
add esp, 0xc
test eax, eax
je 0x49375a
cmp eax, 3
jbe 0x49375d
push 4
pop ecx
cmp eax, ecx
je 0x4936b6
cmp eax, 5
je 0x4936c5
push 6
pop ecx
cmp eax, ecx
jne 0x49375a
push dword [ebp + 0xc]
mov edx, dword [ebp + 0x30]
xor eax, eax
push eax
push esi
mov ecx, edi
call fcn.004a5aae
add esp, 0xc
mov edx, dword [ebp + 0x24]
mov ecx, ebx
call fcn.0046b9fa
jmp 0x493768
cmp dword [esp + 0x5c], 0
je 0x493724
cmp dword [edi + 0x78], 0
mov eax, edi
push 0xffffffffffffffff
cmovne eax, dword [edi + 0x78]
mov edx, esi
push 1
push 5
mov ecx, edi
mov byte [eax + 0x14], 1
xor eax, eax
push eax
push 1
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [esp + 0x88]
call fcn.0048d763
add esp, 0x24
xor eax, eax
mov ecx, ebx
push eax
push 1
push dword [esp + 0x64]
push 0x56
pop edx
call fcn.0046b9a1
add esp, 0xc
mov dword [esp + 0x84], 1
jmp 0x49374d
xor ecx, ecx
cmp dword [esi + 8], ecx
je 0x49374d
cmp dword [edi + 0x78], ecx
mov eax, edi
push 0xffffffffffffffff
cmovne eax, dword [edi + 0x78]
mov edx, esi
push ecx
push dword [ebp + 0x10]
mov ecx, edi
push dword [ebp + 0xc]
mov byte [eax + 0x14], 1
call fcn.0048da0d
add esp, 0x10
mov dword [esp + 0x8c], 1
jmp 0x493768
push 2
pop eax
push esi
mov edx, eax
mov ecx, edi
call fcn.0048c0d8
pop ecx
mov edx, dword [esp + 0x18]
mov ecx, ebx
call fcn.0046bd45
mov edx, dword [ebp + 0x30]
test edx, edx
je 0x493798
cmp dword [esp + 0x60], edx
je 0x493798
xor eax, eax
mov ecx, ebx
push eax
push eax
push eax
push 9
pop edx
call fcn.0046b9a1
add esp, 0xc
mov dword [esp + 0x7c], eax
jmp 0x4937d2
cmp dword [esp + 0x80], 0
je 0x4937d5
xor eax, eax
mov ecx, ebx
push eax
push eax
push eax
push 9
pop edx
call fcn.0046b9a1
mov edx, dword [esp + 0x8c]
add esp, 0xc
mov ecx, ebx
mov dword [esp + 0x98], eax
lea edx, [edx - 1]
call fcn.0046c1e8
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
mov edx, dword [ebp + 0x30]
cmp dword [esp + 0x38], 0
je 0x4937eb
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x10], ecx
jmp 0x4937f7
xor eax, eax
mov ecx, eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x64]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0xc], eax
test eax, eax
je 0x493fd0
mov esi, dword [esp + 0x64]
mov dword [esp + 0x1c], esi
mov esi, dword [ebp + 8]
cmp dword [esi + ecx*4], 0
mov esi, dword [esp + 0x48]
je 0x493f80
test edx, edx
je 0x49385e
mov ecx, edx
cmp dword [ecx], 0
je 0x49383f
cmp dword [ecx + 0x1c], eax
je 0x49383f
mov ecx, dword [ecx + 0x10]
test ecx, ecx
jne 0x49382e
mov eax, dword [esp + 0x70]
mov dword [esp + 0x60], ecx
test eax, eax
je 0x49385e
cmp ecx, edx
jne 0x49385e
mov edx, eax
mov ecx, ebx
call fcn.0046c1e8
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
mov eax, dword [edi + 0x38]
dec eax
cmp byte [esp + 0x17], 0
mov dword [esp + 0x54], eax
mov dword [edi + 0x38], eax
jne 0x493884
mov eax, dword [ebp + 0x14]
mov edx, esi
inc eax
mov ecx, ebx
push eax
call fcn.00491a80
pop ecx
mov byte [esp + 0x17], 1
mov ecx, dword [ebp + 0x10]
xor edx, edx
mov eax, dword [esp + 0x10]
add ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 0x24], edx
je 0x4938da
mov ecx, dword [ebp + 8]
push edx
push dword [ecx + eax*4]
mov ecx, ebx
push edx
push 0x4b
pop edx
call fcn.0046b9a1
mov eax, dword [ebp + 0x14]
add esp, 8
not eax
mov ecx, edi
mov dword [edi + 0x34], eax
mov eax, dword [esp + 0x10]
push dword [esp + 0x58]
mov edx, dword [eax + 0x24]
call fcn.00481112
pop ecx
xor eax, eax
pop ecx
mov ecx, dword [esp + 0xc]
mov dword [edi + 0x34], eax
mov eax, dword [esp + 0x10]
mov edx, dword [ebp + 8]
mov eax, dword [edx + eax*4]
mov dword [esp + 0x58], eax
xor eax, eax
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x28], ebx
xor ebx, ebx
mov dword [esp + 0x3c], eax
movzx eax, word [ecx + 0x34]
cmp bx, ax
mov edx, eax
mov ebx, dword [esp + 0x74]
jae 0x4939d2
mov edx, dword [esp + 0x58]
inc edx
xor eax, eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x18], eax
mov esi, dword [esp + 0x3c]
mov eax, dword [ecx + 4]
movzx eax, word [eax + esi*2]
mov esi, dword [esp + 0x48]
mov dword [esp + 0x20], eax
cwde
cmp eax, 0xfffffffe
jne 0x493952
mov eax, dword [ebp + 0x14]
not eax
mov dword [edi + 0x34], eax
mov eax, dword [esp + 0x18]
push edx
mov edx, dword [ecx + 0x28]
mov ecx, edi
mov edx, dword [edx + eax + 8]
call fcn.0048081b
xor eax, eax
pop ecx
mov dword [edi + 0x34], eax
jmp 0x493994
cmp eax, 0xffffffff
je 0x493980
mov edi, dword [esp + 0x20]
cmp di, word [esi + 0x20]
mov edi, dword [esp + 0x50]
je 0x493980
xor eax, eax
mov ecx, esi
push eax
push edx
mov edx, dword [esp + 0x28]
call fcn.0048780b
mov ecx, dword [ebp + 0x14]
cwde
inc ecx
add eax, ecx
push eax
push 0x51
jmp 0x493989
xor eax, eax
push eax
push edx
push dword [ebp + 0x14]
push 0x52
pop edx
mov ecx, ebx
call fcn.0046b9a1
add esp, 0xc
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x4c]
inc dword [esp + 0x3c]
add dword [esp + 0x18], 0x14
inc edx
movzx eax, word [ecx + 0x34]
mov dword [esp + 0x28], eax
movzx eax, ax
mov dword [esp + 0x4c], edx
cmp dword [esp + 0x3c], eax
jl 0x493916
mov eax, dword [esp + 0x28]
mov ecx, dword [ebp + 8]
movzx edx, ax
mov eax, dword [esp + 0x10]
mov eax, dword [ecx + eax*4]
jmp 0x4939d6
mov eax, dword [esp + 0x28]
push eax
movzx eax, dx
mov ecx, ebx
push eax
mov eax, dword [esp + 0x60]
inc eax
push eax
push 0x61
pop edx
call fcn.0046b9a1
mov ecx, dword [esp + 0x18]
add esp, 0xc
cmp dword [ebp + 0x18], 0
je 0x493a14
cmp dword [esp + 0x30], ecx
jne 0x493a14
cmp byte [ebp + 0x1c], 0
jne 0x493a14
mov edx, dword [esp + 0x54]
mov ecx, ebx
call fcn.0046bd45
jmp 0x493f7c
movzx eax, byte [ecx + 0x36]
test eax, eax
je 0x493a04
mov edx, dword [esp + 0x40]
cmp dl, 0xb
je 0x493a2a
movzx eax, dl
jmp 0x493a33
push 2
cmp eax, 0xb
pop edx
cmove eax, edx
mov edx, dword [esp + 0x60]
mov dword [esp + 0x20], eax
test edx, edx
je 0x493a50
cmp byte [edx + 0x14], 0
push 6
pop eax
push 4
pop edx
cmove eax, edx
mov dword [esp + 0x20], eax
cmp dword [esp + 0x10], 0
jne 0x493ac4
xor edx, edx
cmp dword [ecx + 0x14], edx
jne 0x493ac4
cmp dword [esp + 0x30], ecx
jne 0x493ac4
cmp eax, 5
jne 0x493ac4
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x20]
and eax, 0x2000
mov dword [esp + 0x90], eax
je 0x493a97
push edx
push edx
push 0x80
mov edx, esi
mov ecx, edi
call fcn.004a2d5d
add esp, 0xc
test eax, eax
jne 0x493ac4
xor edx, edx
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x20]
and eax, 0x4000
mov dword [esp + 0x90], eax
je 0x493a04
cmp dword [esi + 0x30], edx
jne 0x493ac4
mov ecx, esi
call fcn.00490814
test eax, eax
je 0x493a04
mov eax, dword [esp + 0xc]
mov ecx, ebx
movzx eax, word [eax + 0x32]
push eax
mov eax, dword [esp + 0x5c]
inc eax
push eax
push dword [esp + 0x5c]
push dword [esp + 0x30]
push 0x1b
pop edx
call fcn.0046bcab
mov dword [esp + 0x28], eax
add esp, 0x10
mov eax, dword [esp + 0xc]
cmp eax, dword [esp + 0x30]
jne 0x493afd
mov ecx, dword [esp + 0x58]
inc ecx
jmp 0x493b0e
mov edx, dword [esp + 0x78]
mov ecx, edi
call fcn.00481eb5
mov ecx, eax
mov eax, dword [esp + 0xc]
cmp dword [ebp + 0x18], 0
mov dword [esp + 0x4c], ecx
jne 0x493b1f
cmp dword [esp + 0x20], 5
jne 0x493b6b
test byte [esi + 0x1c], 0x80
jne 0x493bb8
xor eax, eax
mov edx, 0x8e
push eax
push ecx
push dword [esp + 0x2c]
mov ecx, ebx
call fcn.0046b9a1
mov ecx, dword [ebp + 0x18]
add esp, 0xc
test ecx, ecx
je 0x493b6e
push ecx
push dword [esp + 0x58]
mov ecx, ebx
push dword [esp + 0x54]
push 0x35
pop eax
mov edx, eax
call fcn.0046b9a1
add esp, 0xc
mov edx, 0x90
mov ecx, ebx
call fcn.0046bf17
mov ecx, dword [ebp + 0x18]
xor edx, edx
mov eax, dword [esp + 0x20]
test eax, eax
je 0x493d30
cmp eax, 3
jbe 0x493d1d
cmp eax, 4
je 0x493ba9
cmp eax, 6
jne 0x493d30
push dword [esp + 0x24]
mov edx, dword [ebp + 0x30]
mov ecx, edi
push dword [esp + 0x10]
push esi
call fcn.004a5aae
add esp, 0xc
mov edx, dword [ebp + 0x24]
mov ecx, ebx
call fcn.0046b9fa
jmp 0x493f0e
mov edx, dword [esp + 0x30]
cmp eax, edx
je 0x493c1a
xor edi, edi
cmp di, word [edx + 0x32]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x50]
jae 0x493c1a
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x28]
lea eax, [ecx + esi]
mov ecx, edi
push eax
mov eax, dword [edx + 4]
mov dx, word [eax + esi*2]
call fcn.004877eb
cwde
mov ecx, ebx
push eax
push dword [esp + 0x2c]
push 0x5e
pop edx
call fcn.0046b9a1
mov edx, dword [esp + 0x3c]
add esp, 0xc
mov ecx, dword [esp + 0x4c]
inc esi
movzx eax, word [edx + 0x32]
cmp esi, eax
jl 0x493bd8
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0xc]
mov ecx, dword [ebp + 0x18]
test ecx, ecx
je 0x493b6e
movzx ecx, word [edx + 0x32]
mov eax, dword [eax + 0x38]
mov edx, dword [ebx + 0x6c]
and al, 3
add edx, ecx
mov dword [esp + 0x3c], 0x34
cmp al, 2
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x4c]
lea eax, [eax + 1]
cmove edx, eax
mov dword [esp + 0x90], edx
xor edx, edx
mov eax, edx
mov dword [esp + 0x6c], eax
test ecx, ecx
je 0x493d15
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 0x20]
mov ecx, edi
mov edx, dword [edx + eax*4]
call fcn.0048c85b
mov edi, dword [esp + 0x30]
mov esi, eax
mov eax, dword [esp + 0x6c]
push 0x35
mov ecx, dword [edi + 4]
movzx edx, word [ecx + eax*2]
movzx ecx, word [edi + 0x32]
mov edi, dword [esp + 0x40]
dec ecx
cmp eax, ecx
mov dword [esp + 0x40], edi
mov eax, edi
pop edi
cmove eax, edi
cmp dword [esp + 0x6c], ecx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x54]
cmovne eax, dword [esp + 0x28]
mov ecx, eax
mov eax, dword [esp + 0x90]
add eax, dword [esp + 0x6c]
push 0xfffffffffffffffe
push esi
mov esi, dword [esp + 0x50]
push eax
mov dword [esp + 0x34], ecx
push ecx
mov ecx, esi
call fcn.0048780b
mov ecx, dword [ebp + 0x18]
mov edx, dword [esp + 0x4c]
inc ecx
cwde
add eax, ecx
mov ecx, ebx
push eax
call fcn.0046bac5
add esp, 0x14
lea edx, [edi + 0x5b]
mov ecx, ebx
call fcn.0046bf17
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x6c]
mov edi, dword [esp + 0x50]
inc ecx
mov dword [esp + 0x6c], ecx
movzx eax, word [eax + 0x32]
cmp ecx, eax
mov eax, ecx
jl 0x493c66
jmp 0x493b6b
mov ecx, dword [ebp + 0x18]
jmp 0x493b70
push dword [esp + 0xc]
mov edx, eax
mov ecx, edi
call fcn.0048bfc6
pop ecx
jmp 0x493f0e
mov eax, dword [ebx + 0x6c]
sub eax, dword [esp + 0x18]
cmp dword [esp + 0x5c], 0
mov dword [esp + 0x20], eax
je 0x493d57
cmp dword [edi + 0x78], 0
mov eax, edi
cmovne eax, dword [edi + 0x78]
inc dword [esp + 0x84]
mov byte [eax + 0x14], 1
cmp dword [esp + 0x68], 0
je 0x493d76
test ecx, ecx
je 0x493d76
push edx
push edx
push dword [ebp + 0xc]
mov edx, 0xa7
mov ecx, ebx
call fcn.0046b9a1
add esp, 0xc
push dword [esp + 0x24]
mov eax, dword [esp + 0x34]
mov edx, esi
cmp dword [esp + 0x10], eax
mov ecx, edi
sete al
movzx eax, al
push eax
push 5
xor eax, eax
push eax
push dword [esp + 0x88]
push dword [esp + 0x60]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [esp + 0x88]
call fcn.0048d763
add esp, 0x24
cmp dword [esp + 0x68], 0
je 0x493dd5
cmp dword [ebp + 0x18], 0
je 0x493dd5
xor eax, eax
mov edx, 0xa8
push eax
push eax
push dword [ebp + 0xc]
mov ecx, ebx
call fcn.0046b9a1
add esp, 0xc
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x493f03
xor ecx, ecx
push ecx
push 1
push eax
push 0x56
pop edx
mov ecx, ebx
call fcn.0046b9a1
add esp, 0xc
xor eax, eax
mov ecx, ebx
push eax
push eax
push eax
push 9
pop edx
call fcn.0046b9a1
mov edx, dword [esp + 0x28]
add esp, 0xc
mov ecx, ebx
mov dword [esp + 0x90], eax
call fcn.0046bd45
mov eax, dword [esp + 0xc]
xor edx, edx
dec dword [edi + 0x38]
mov ecx, dword [edi + 0x38]
mov dword [esp + 0x1c], ecx
cmp dword [eax + 0x24], edx
je 0x493e40
push edx
push ecx
push dword [esp + 0x60]
mov ecx, ebx
push 0x32
pop edx
call fcn.0046b9a1
add esp, 0xc
cmp dword [esp + 0x20], 0
jle 0x493ede
mov ecx, dword [esp + 0x18]
mov edx, ecx
mov ecx, ebx
call fcn.0046c1e8
push 5
mov esi, eax
lea edi, [esp + 0xa0]
pop ecx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x9c]
cmp al, 0x8e
je 0x493ebc
mov ecx, dword [esp + 0xa4]
movzx edx, al
test byte [edx + 0x85c9d0], 1
cmovne ecx, dword [esp + 0x1c]
shr eax, 8
movsx eax, al
push eax
push dword [esp + 0xb0]
push dword [esp + 0xb0]
push ecx
push dword [esp + 0xb0]
mov ecx, ebx
call fcn.0046bac5
mov edx, dword [esp + 0xb2]
add esp, 0x14
mov ecx, ebx
call fcn.0046bf17
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
dec eax
inc ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], ecx
test eax, eax
jg 0x493e4f
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x48]
push dword [esp + 0xc]
mov ecx, edi
push 2
pop eax
mov edx, eax
call fcn.0048bfc6
mov edx, dword [esp + 0x94]
pop ecx
mov ecx, ebx
call fcn.0046c1e8
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
mov dword [esp + 0x8c], 1
mov edx, dword [esp + 0x54]
mov ecx, ebx
call fcn.0046bd45
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x4c]
inc ecx
cmp eax, ecx
je 0x493f36
push dword [esp + 0x78]
mov edx, eax
mov ecx, edi
call fcn.00481eeb
add esp, 4
mov eax, dword [esp + 0x60]
test eax, eax
je 0x493f7c
cmp dword [esp + 0x7c], 0
je 0x493f7c
mov eax, dword [eax + 0x10]
test eax, eax
je 0x493f57
xor ecx, ecx
cmp dword [eax], ecx
je 0x493f57
cmp dword [eax + 0x1c], ecx
jne 0x493f7c
mov edx, dword [esp + 0x70]
mov ecx, ebx
lea edx, [edx + 1]
call fcn.0046b9fa
mov edx, dword [esp + 0x7c]
mov ecx, ebx
call fcn.0046c1e8
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
xor eax, eax
mov dword [esp + 0x7c], eax
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x38], 0
je 0x493fb0
mov eax, dword [esp + 0x88]
inc eax
mov ecx, eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x10], ecx
cmp ecx, dword [esp + 0x2c]
jge 0x493fd0
mov eax, dword [esp + 0x34]
lea eax, [eax + ecx*8]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
jmp 0x493fbc
mov eax, dword [esp + 0x2c]
inc ecx
mov eax, dword [eax + 0x14]
mov dword [esp + 0x2c], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
test eax, eax
je 0x493fd0
mov edx, dword [ebp + 0x30]
jmp 0x493817
mov eax, dword [esp + 0x80]
test eax, eax
je 0x493ff8
mov edx, eax
mov ecx, ebx
call fcn.0046b9fa
mov edx, dword [esp + 0x98]
mov ecx, ebx
call fcn.0046c1e8
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
cmp dword [esp + 0x84], 0
je 0x49408c
xor eax, eax
mov ecx, ebx
push eax
push dword [esp + 0x20]
push dword [esp + 0x64]
push 0x11
pop edx
call fcn.0046b9a1
add esp, 0xc
cmp dword [esp + 0x30], 0
jne 0x494076
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x49404f
push eax
push dword [esp + 0x68]
mov ecx, ebx
push dword [ebp + 0x14]
push 0x35
pop eax
mov edx, eax
call fcn.0046b9a1
add esp, 0xc
mov edx, 0x90
mov ecx, ebx
call fcn.0046bf17
push dword [ebp + 0x14]
mov ecx, ebx
push dword [esp + 0x68]
push dword [ebp + 0xc]
push 0x1f
pop edx
call fcn.0046b9a1
add esp, 0xc
mov ecx, edi
push esi
push 2
pop eax
mov edx, eax
call fcn.0048c0d8
pop ecx
jmp 0x494081
mov edx, dword [esp + 0x64]
mov ecx, ebx
call fcn.0046b9fa
mov edx, dword [esp + 0x1c]
mov ecx, ebx
call fcn.0046bd45
test byte [esi + 0x1c], 0x80
jne 0x4940c7
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 8]
push dword [ecx + eax*4]
movsx eax, word [esi + 0x24]
mov ecx, ebx
push eax
mov eax, dword [ebp + 0x14]
inc eax
push eax
push 0x61
pop edx
call fcn.0046b9a1
add esp, 0xc
cmp byte [esp + 0x17], 0
jne 0x4940c7
xor eax, eax
mov edx, esi
push eax
mov ecx, ebx
call fcn.00491a80
pop ecx
mov eax, dword [ebp + 0x28]
mov ecx, dword [esp + 0x8c]
mov dword [eax], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret