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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xac
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
mov edx, dword [ebp + 0x30]
xor ecx, ecx
mov dword [esp + 0x10], esi
mov dword [esp + 0x68], edi
test byte [esi + 0x1c], 0x80
mov eax, dword [edi]
mov ebx, dword [edi + 8]
mov dword [esp + 0x48], eax
movsx eax, word [esi + 0x22]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x5c], ecx
mov byte [esp + 0x17], cl
mov dword [esp + 0x84], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x4c], eax
jne 0x49c620
mov dword [esp + 0x30], ecx
mov dword [esp + 0x74], 1
jmp 0x49c635
mov ecx, esi
call fcn.00490d43
mov dword [esp + 0x30], eax
xor ecx, ecx
movzx eax, word [eax + 0x32]
mov dword [esp + 0x74], eax
test dword [esi + 0x1c], 0x800
mov dl, byte [ebp + 0x20]
mov dword [esp + 0x54], edx
je 0x49c87b
mov eax, ecx
mov dword [esp + 0x24], ecx
xor edx, edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x3c], edx
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x44], edx
jle 0x49c830
xor eax, eax
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 4]
add ecx, eax
mov dword [esp + 0x50], ecx
mov esi, dword [ecx + 4]
and esi, 0xf
mov dword [esp + 0x40], esi
je 0x49c80c
mov eax, dword [esp + 0x10]
movsx eax, word [eax + 0x20]
cmp edx, eax
je 0x49c80c
movzx eax, word [ecx + 0xe]
and eax, 0x60
je 0x49c6b0
cmp dword [esp + 0x28], 0
jne 0x49c6b0
inc dword [esp + 0x3c]
jmp 0x49c80c
cmp dword [ebp + 0x2c], 0
mov edi, dword [esp + 0x68]
je 0x49c6cf
mov ebx, dword [ebp + 0x2c]
cmp dword [ebx + edx*4], 0
mov ebx, dword [esp + 0x38]
jge 0x49c6cf
test eax, eax
je 0x49c80c
cmp byte [esp + 0x54], 0xb
mov ebx, dword [esp + 0x38]
je 0x49c708
mov ebx, dword [esp + 0x54]
movzx esi, bl
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x40], esi
cmp esi, 5
jne 0x49c716
cmp dword [esp + 0x28], 0
jne 0x49c6fd
xor eax, eax
cmp word [ecx + 0xc], ax
jne 0x49c725
push 2
pop eax
mov esi, eax
mov dword [esp + 0x40], esi
jmp 0x49c725
cmp esi, 0xb
jne 0x49c6e9
push 2
pop ecx
mov esi, ecx
mov dword [esp + 0x40], esi
cmp dword [esp + 0x28], 0
je 0x49c725
test eax, eax
je 0x49c80c
mov ecx, dword [esp + 0x10]
call fcn.00490d7b
mov ecx, dword [ebp + 0x14]
cwde
inc ecx
add ecx, eax
mov eax, esi
mov dword [esp + 0x2c], ecx
sub eax, 1
je 0x49c7bc
sub eax, 1
je 0x49c7ae
sub eax, 1
je 0x49c7bc
push 2
pop edx
sub eax, edx
je 0x49c76a
xor eax, eax
push eax
push dword [ebp + 0x24]
push ecx
push 0x32
pop edx
mov ecx, ebx
call fcn.004746eb
add esp, 0xc
jmp 0x49c808
xor eax, eax
push eax
push eax
push ecx
push 0x33
pop edx
mov ecx, ebx
call fcn.004746eb
mov ecx, dword [esp + 0x1c]
add esp, 0xc
inc dword [esp + 0x24]
mov esi, eax
mov edx, dword [esp + 0x50]
push dword [esp + 0x2c]
call fcn.00490862
mov edx, eax
mov ecx, edi
call fcn.00489cef
pop ecx
mov edx, esi
mov ecx, ebx
call fcn.00474f68
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
jmp 0x49c808
cmp dword [edi + 0x78], 0
mov eax, edi
cmovne eax, dword [edi + 0x78]
mov byte [eax + 0x15], 1
mov eax, dword [esp + 0x50]
push dword [eax]
mov eax, dword [esp + 0x14]
push dword [eax]
push 0x42fff4
push dword [esp + 0x54]
call fcn.0045b770
push dword [esp + 0x3c]
mov ecx, ebx
mov esi, eax
push dword [esp + 0x54]
push 0x513
push 0x45
pop edx
call fcn.004746eb
add esp, 0x1c
mov edx, esi
mov ecx, ebx
push 0xfffffffffffffffa
call fcn.00474f1c
pop ecx
xor edx, edx
mov ecx, ebx
inc edx
call fcn.00474c95
mov edx, dword [esp + 0x44]
add dword [esp + 0x18], 0x10
inc edx
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x44], edx
cmp edx, dword [esp + 0x4c]
jl 0x49c66e
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
cmp dword [esp + 0x3c], 0
jne 0x49c83b
test ecx, ecx
je 0x49c877
test eax, eax
jne 0x49c877
inc eax
mov dword [esp + 0x28], eax
push 0
pop edx
test ecx, ecx
jle 0x49c659
test byte [esi + 0x1c], 0x60
je 0x49c659
mov edx, dword [ebp + 0x14]
mov ecx, edi
push esi
lea edx, [edx + 1]
call fcn.0049b24b
mov eax, dword [esp + 0x2c]
xor edx, edx
pop ecx
mov ecx, dword [esp + 0x24]
jmp 0x49c659
mov edx, dword [esp + 0x54]
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x34], ecx
test ecx, ecx
je 0x49c9ca
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x20]
and eax, 0x200
or eax, 0
jne 0x49c9ca
mov eax, dword [ebp + 0x14]
cmp dl, 0xb
not eax
mov dword [edi + 0x34], eax
push 2
movzx eax, dl
pop esi
cmovne esi, eax
xor eax, eax
mov dword [esp + 0x2c], eax
cmp dword [ecx], eax
jle 0x49c9bf
lea eax, [ecx + 0xc]
mov dword [esp + 0x18], eax
mov edx, dword [ebp + 0x2c]
mov ecx, dword [eax - 4]
mov dword [esp + 0x80], ecx
test edx, edx
je 0x49c8ec
movzx eax, byte [ebp + 0x1c]
push eax
call fcn.0049c545
pop ecx
test eax, eax
je 0x49c99f
cmp byte [esp + 0x17], 0
jne 0x49c909
mov eax, dword [ebp + 0x14]
mov ecx, ebx
mov edx, dword [esp + 0x10]
inc eax
push eax
call fcn.0049b076
pop ecx
mov byte [esp + 0x17], 1
dec dword [edi + 0x38]
xor eax, eax
mov edx, dword [esp + 0x80]
mov ecx, dword [edi + 0x38]
mov dword [esp + 0x3c], ecx
test edx, edx
je 0x49c931
mov ecx, dword [esp + 0x48]
push eax
push eax
call fcn.004861de
pop ecx
pop ecx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x50], eax
cmp byte [edx + 0x57], 0
jne 0x49c94c
push 0x10
push ecx
push eax
push edi
call fcn.0048a018
add esp, 0x10
mov edx, dword [esp + 0x50]
test edx, edx
je 0x49c95d
mov ecx, dword [esp + 0x48]
call fcn.0048602a
push 4
pop eax
cmp esi, eax
jne 0x49c970
mov edx, dword [ebp + 0x24]
mov ecx, ebx
call fcn.00474744
jmp 0x49c994
push 2
pop eax
cmp esi, 5
mov edx, 0x113
push 3
cmove esi, eax
mov ecx, edi
xor eax, eax
push eax
mov eax, dword [esp + 0x20]
push dword [eax]
push esi
call fcn.004955e1
add esp, 0x10
mov edx, dword [esp + 0x3c]
mov ecx, ebx
call fcn.00474ac0
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x34]
inc edx
mov eax, dword [esp + 0x18]
add eax, 0x14
mov dword [esp + 0x2c], edx
mov dword [esp + 0x18], eax
cmp edx, dword [ecx]
jl 0x49c8c8
mov esi, dword [esp + 0x10]
xor ecx, ecx
mov dword [edi + 0x34], ecx
jmp 0x49c9cc
xor ecx, ecx
mov edx, dword [ebp + 0x30]
mov eax, dword [esi + 8]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x44], eax
test edx, edx
je 0x49ca0a
cmp dword [edx], ecx
jne 0x49ca2f
mov al, byte [edx + 0x14]
xor edx, edx
test al, al
cmovne edx, dword [esp + 0x7c]
setne al
mov dword [ebp + 0x30], edx
lea eax, [eax*2 + 4]
mov dword [esp + 0x54], eax
xor edx, edx
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x20]
mov eax, ecx
and eax, 0x6000
or eax, edx
jne 0x49cb0d
mov dword [esp + 0x60], edx
mov dword [esp + 0x28], edx
jmp 0x49cb87
test eax, eax
je 0x49ca0a
mov esi, ecx
mov eax, dword [eax + 0x14]
inc esi
test eax, eax
jne 0x49ca35
imul eax, esi, 0xa
push ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x54], 1
mov dword [esp + 0x48], esi
push eax
call fcn.0045975d
pop ecx
pop ecx
mov ecx, eax
mov dword [esp + 0x4c], ecx
test ecx, ecx
je 0x49d6b9
mov edx, dword [ebp + 0x30]
lea eax, [ecx + esi*8]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x18], eax
xor eax, eax
mov edi, dword [esp + 0x18]
mov esi, eax
mov dword [edx + 0x18], ecx
cmp dword [edx], eax
je 0x49cac3
cmp dword [edx + 0x1c], 0
je 0x49cabc
mov ecx, eax
mov eax, dword [ebx + 8]
jmp 0x49ca9a
cmp eax, dword [edx + 0x1c]
je 0x49ca9e
mov eax, dword [eax + 0x14]
inc ecx
test eax, eax
jne 0x49ca91
cmp byte [ecx + edi], 0
jne 0x49caba
mov ebx, dword [esp + 0x4c]
mov byte [ecx + edi], 1
mov dword [ebx + esi*8], eax
mov eax, ebx
mov ebx, dword [esp + 0x10]
mov dword [eax + esi*8 + 4], ecx
inc esi
xor eax, eax
mov edx, dword [edx + 0x10]
test edx, edx
jne 0x49ca80
mov eax, dword [esp + 0x10]
xor edx, edx
mov ebx, dword [esp + 0x38]
mov ecx, edx
mov edi, dword [esp + 0x68]
mov eax, dword [eax + 8]
test eax, eax
je 0x49cb04
mov edx, dword [esp + 0x4c]
lea edx, [edx + esi*8]
mov esi, dword [esp + 0x18]
cmp byte [ecx + esi], 0
jne 0x49caf3
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
mov eax, dword [eax + 0x14]
inc ecx
test eax, eax
jne 0x49cae5
mov esi, dword [esp + 0x10]
jmp 0x49ca0a
mov esi, dword [esp + 0x10]
jmp 0x49ca0c
and ecx, 0x2000
or ecx, edx
push edx
mov ecx, edi
push edx
je 0x49cb4a
push 0x80
mov edx, esi
call fcn.004acac3
add esp, 0xc
mov dword [esp + 0x60], eax
test eax, eax
jne 0x49cb5f
push eax
push eax
mov edx, esi
mov ecx, edi
call fcn.0049a77c
pop ecx
pop ecx
test eax, eax
jne 0x49cb5f
xor edx, edx
jmp 0x49ca26
mov dword [esp + 0x68], edx
mov edx, esi
call fcn.0049a77c
mov dword [esp + 0x30], eax
pop ecx
pop ecx
test eax, eax
je 0x49cb85
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 + 0x34], eax
call fcn.004746eb
add esp, 0xc
dec dword [edi + 0x38]
mov eax, dword [edi + 0x38]
mov dword [esp + 0x6c], eax
xor edx, edx
cmp byte [ebp + 0x1c], 0
mov dword [esp + 0x34], 6
je 0x49cdf2
cmp dword [esp + 0x30], 0
jne 0x49cdf2
dec dword [edi + 0x38]
mov ecx, dword [esp + 0x54]
mov eax, dword [edi + 0x38]
movzx esi, byte [esi + 0x2a]
mov dword [esp + 0x18], eax
cmp cl, 0xb
je 0x49cbc0
movzx esi, cl
jmp 0x49cbc9
push 2
cmp esi, 0xb
pop eax
cmove esi, eax
mov eax, dword [ebp + 0x30]
test eax, eax
je 0x49cc1a
mov ecx, eax
cmp dword [ecx], edx
je 0x49cbe2
cmp dword [ecx + 0x1c], edx
je 0x49cbe2
mov ecx, dword [ecx + 0x10]
test ecx, ecx
jne 0x49cbd2
mov dword [esp + 0x5c], ecx
test ecx, ecx
je 0x49cbfa
cmp byte [ecx + 0x14], 0
push 4
pop esi
cmovne esi, dword [esp + 0x34]
cmp ecx, eax
je 0x49cc16
push edx
push edx
push edx
push 9
pop edx
mov ecx, ebx
call fcn.004746eb
mov ecx, dword [esp + 0x60]
mov edx, eax
add esp, 0xc
mov dword [esp + 0x70], edx
jmp 0x49cc1e
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x70]
cmp esi, 5
jne 0x49cc4f
cmp cl, 5
je 0x49cc4f
mov eax, dword [esp + 0x10]
xor ecx, ecx
cmp dword [eax + 8], ecx
je 0x49cc4f
test edx, edx
jne 0x49cc4f
push ecx
push ecx
push ecx
push 9
pop edx
mov ecx, ebx
call fcn.004746eb
add esp, 0xc
inc eax
mov dword [esp + 0x88], eax
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x49cc77
push eax
push dword [esp + 0x1c]
mov ecx, ebx
push dword [ebp + 0x14]
push 0x35
pop edx
call fcn.004746eb
add esp, 0xc
mov edx, 0x90
mov ecx, ebx
call fcn.00474c95
push dword [ebp + 0x14]
mov ecx, ebx
push dword [esp + 0x1c]
push dword [ebp + 0xc]
push 0x1f
pop edx
call fcn.004746eb
mov eax, esi
add esp, 0xc
sub eax, 1
je 0x49ccb3
sub eax, 1
je 0x49ccb3
sub eax, 1
je 0x49ccb3
sub eax, 1
je 0x49cd19
sub eax, 1
je 0x49cd25
sub eax, 1
je 0x49cd02
push 2
pop eax
mov esi, eax
push dword [esp + 0x10]
mov edx, esi
mov ecx, edi
call fcn.00495753
pop ecx
mov edx, dword [esp + 0x18]
mov ecx, ebx
call fcn.00474ac0
mov edx, dword [ebp + 0x30]
test edx, edx
je 0x49cdbe
cmp dword [esp + 0x5c], edx
je 0x49cdbe
xor esi, esi
mov ecx, ebx
push esi
push esi
push esi
push 9
pop edx
call fcn.004746eb
mov edx, dword [ebp + 0x30]
add esp, 0xc
mov dword [esp + 0x84], eax
jmp 0x49cdf7
push dword [ebp + 0xc]
mov edx, dword [ebp + 0x30]
xor eax, eax
push eax
push dword [esp + 0x18]
mov ecx, edi
call fcn.004af798
add esp, 0xc
mov edx, dword [ebp + 0x24]
mov ecx, ebx
call fcn.00474744
jmp 0x49ccc1
mov esi, dword [esp + 0x28]
test esi, esi
je 0x49cd81
cmp dword [edi + 0x78], 0
mov eax, edi
mov edx, dword [esp + 0x10]
mov ecx, edi
cmovne eax, dword [edi + 0x78]
push 0xffffffffffffffff
push 1
push 5
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 + 0x80]
call fcn.00496e35
add esp, 0x24
xor eax, eax
mov ecx, ebx
push eax
push 1
push esi
push 0x56
pop edx
call fcn.004746eb
add esp, 0xc
mov dword [esp + 0x78], 1
jmp 0x49cdae
mov ecx, dword [esp + 0x10]
xor edx, edx
cmp dword [ecx + 8], edx
je 0x49cdae
cmp dword [edi + 0x78], edx
mov eax, edi
push 0xffffffffffffffff
cmovne eax, dword [edi + 0x78]
push edx
push dword [ebp + 0x10]
mov edx, ecx
mov ecx, edi
push dword [ebp + 0xc]
mov byte [eax + 0x14], 1
call fcn.004970df
add esp, 0x10
mov dword [esp + 0x8c], 1
jmp 0x49ccc1
mov esi, dword [esp + 0x88]
test esi, esi
je 0x49cdf5
xor eax, eax
mov ecx, ebx
push eax
push eax
push eax
push 9
pop edx
call fcn.004746eb
add esp, 0xc
mov dword [esp + 0x9c], eax
lea edx, [esi - 1]
mov ecx, ebx
call fcn.00474f68
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
mov edx, dword [ebp + 0x30]
xor esi, esi
cmp dword [esp + 0x50], 0
je 0x49ce0d
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 4]
mov esi, dword [eax]
mov dword [esp + 0x1c], ecx
jmp 0x49ce17
mov ecx, esi
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x20], esi
mov dword [esp + 0x40], eax
test esi, esi
je 0x49d5b5
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 8]
cmp dword [eax + ecx*4], 0
je 0x49d565
test edx, edx
je 0x49ce73
mov eax, edx
xor ecx, ecx
cmp dword [eax], ecx
je 0x49ce54
cmp dword [eax + 0x1c], esi
je 0x49ce54
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x49ce44
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x5c], eax
test ecx, ecx
je 0x49ce73
cmp eax, edx
jne 0x49ce73
mov edx, ecx
mov ecx, ebx
call fcn.00474f68
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
dec dword [edi + 0x38]
cmp byte [esp + 0x17], 0
mov eax, dword [edi + 0x38]
mov dword [esp + 0x58], eax
jne 0x49ce9a
mov eax, dword [ebp + 0x14]
mov ecx, ebx
mov edx, dword [esp + 0x10]
inc eax
push eax
call fcn.0049b076
pop ecx
mov byte [esp + 0x17], 1
mov ecx, dword [ebp + 0x10]
xor edx, edx
mov eax, dword [esp + 0x1c]
add ecx, eax
mov dword [esp + 0x3c], ecx
cmp dword [esi + 0x24], edx
je 0x49cee4
mov ecx, dword [ebp + 8]
push edx
push dword [ecx + eax*4]
mov ecx, ebx
push edx
push 0x4b
pop edx
call fcn.004746eb
mov eax, dword [ebp + 0x14]
add esp, 8
not eax
mov ecx, edi
mov dword [edi + 0x34], eax
mov edx, dword [esi + 0x24]
push dword [esp + 0x5c]
call fcn.0048a653
xor eax, eax
pop ecx
mov dword [edi + 0x34], eax
mov eax, dword [esp + 0x20]
pop ecx
mov ecx, dword [ebp + 8]
and dword [esp + 0x34], 0
mov edx, dword [ecx + eax*4]
xor eax, eax
mov dword [esp + 0x24], eax
inc edx
movzx eax, word [esi + 0x34]
mov ecx, eax
mov dword [esp + 0x38], edx
cmp word [esp + 0x34], ax
jae 0x49cfb5
mov ecx, dword [esp + 0x20]
xor eax, eax
mov esi, edx
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x24]
mov eax, dword [ecx + 4]
movzx eax, word [eax + edx*2]
movsx edx, ax
mov dword [esp + 0x34], eax
cmp edx, 0xfffffffe
jne 0x49cf51
mov eax, dword [ebp + 0x14]
not eax
mov dword [edi + 0x34], eax
mov edx, dword [ecx + 0x28]
mov ecx, edi
mov eax, dword [esp + 0x18]
push esi
mov edx, dword [edx + eax + 8]
call fcn.00489cef
xor eax, eax
pop ecx
mov dword [edi + 0x34], eax
jmp 0x49cf8f
cmp edx, 0xffffffff
je 0x49cf7b
mov ecx, dword [esp + 0x10]
movsx eax, word [ecx + 0x20]
cmp edx, eax
je 0x49cf7b
mov edx, dword [esp + 0x34]
xor eax, eax
push eax
push esi
call fcn.00490d7b
mov ecx, dword [ebp + 0x14]
cwde
inc ecx
add eax, ecx
push eax
push 0x51
jmp 0x49cf84
xor eax, eax
push eax
push esi
push dword [ebp + 0x14]
push 0x52
pop edx
mov ecx, ebx
call fcn.004746eb
add esp, 0xc
mov ecx, dword [esp + 0x20]
inc dword [esp + 0x24]
add dword [esp + 0x18], 0x14
inc esi
movzx edx, word [ecx + 0x34]
cmp dword [esp + 0x24], edx
jl 0x49cf17
mov esi, dword [esp + 0x20]
mov ecx, edx
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x1c]
mov edi, dword [ebp + 8]
push dword [edi + eax*4]
movzx eax, cx
mov ecx, ebx
push eax
push edx
push 0x61
pop edx
call fcn.004746eb
mov edi, dword [esp + 0x74]
add esp, 0xc
cmp dword [ebp + 0x18], 0
mov edx, dword [esp + 0x30]
je 0x49cff9
cmp edx, esi
jne 0x49cff9
cmp byte [ebp + 0x1c], 0
jne 0x49cff9
mov edx, dword [esp + 0x58]
mov ecx, ebx
call fcn.00474ac0
jmp 0x49d561
movzx eax, byte [esi + 0x36]
test eax, eax
je 0x49cfe9
mov ecx, dword [esp + 0x54]
cmp cl, 0xb
je 0x49d00f
movzx eax, cl
jmp 0x49d018
push 2
cmp eax, 0xb
pop ecx
cmove eax, ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x24], eax
test ecx, ecx
je 0x49d035
cmp byte [ecx + 0x14], 0
push 6
pop eax
push 4
pop ecx
cmove eax, ecx
mov dword [esp + 0x24], eax
cmp dword [esp + 0x1c], 0
jne 0x49d0ac
xor ecx, ecx
cmp dword [esi + 0x14], ecx
jne 0x49d0ac
cmp edx, esi
jne 0x49d0ac
cmp eax, 5
jne 0x49d0ac
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x10]
mov eax, dword [eax + 0x20]
and eax, 0x2000
mov dword [esp + 0x90], eax
je 0x49d07e
push ecx
push ecx
push 0x80
mov edx, esi
mov ecx, edi
call fcn.004acac3
add esp, 0xc
test eax, eax
jne 0x49d0b0
xor ecx, ecx
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x20]
and eax, 0x4000
mov dword [esp + 0x90], eax
je 0x49cfe9
cmp dword [esi + 0x30], ecx
jne 0x49d0b0
mov ecx, esi
call fcn.00499fde
test eax, eax
jne 0x49d0b0
jmp 0x49cfe9
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov ecx, ebx
movzx eax, word [eax + 0x32]
push eax
push dword [esp + 0x3c]
push dword [esp + 0x60]
push dword [esp + 0x48]
push 0x1b
pop edx
call fcn.00474a00
mov edx, dword [esp + 0x40]
add esp, 0x10
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
cmp eax, edx
jne 0x49d0e8
mov ecx, dword [esp + 0x38]
jmp 0x49d0fd
mov edx, dword [esp + 0x74]
mov ecx, edi
call fcn.0048b563
mov edx, dword [esp + 0x30]
mov ecx, eax
mov eax, dword [esp + 0x20]
cmp dword [ebp + 0x18], 0
mov dword [esp + 0x64], ecx
jne 0x49d10e
cmp dword [esp + 0x24], 5
jne 0x49d158
test byte [esi + 0x1c], 0x80
jne 0x49d366
xor eax, eax
mov edx, 0x8e
push eax
push ecx
push dword [esp + 0x44]
mov ecx, ebx
call fcn.004746eb
mov ecx, dword [ebp + 0x18]
add esp, 0xc
test ecx, ecx
je 0x49d15b
push ecx
push dword [esp + 0x5c]
mov ecx, ebx
push dword [esp + 0x6c]
push 0x35
pop edx
call fcn.004746eb
add esp, 0xc
mov edx, 0x90
mov ecx, ebx
call fcn.00474c95
mov ecx, dword [ebp + 0x18]
xor edx, edx
mov eax, dword [esp + 0x24]
sub eax, 1
je 0x49d4e1
sub eax, 1
je 0x49d4e1
sub eax, 1
je 0x49d4e1
sub eax, 1
je 0x49d4d5
dec eax
sub eax, 1
je 0x49d4bb
mov eax, dword [ebx + 0x6c]
sub eax, dword [esp + 0x18]
cmp dword [esp + 0x28], 0
mov dword [esp + 0x2c], eax
je 0x49d1b3
cmp dword [edi + 0x78], 0
mov eax, edi
cmovne eax, dword [edi + 0x78]
inc dword [esp + 0x78]
mov byte [eax + 0x14], 1
cmp dword [esp + 0x60], 0
je 0x49d1d2
test ecx, ecx
je 0x49d1d2
push edx
push edx
push dword [ebp + 0xc]
mov edx, 0xa7
mov ecx, ebx
call fcn.004746eb
add esp, 0xc
push dword [esp + 0x3c]
mov eax, dword [esp + 0x34]
mov edx, esi
cmp dword [esp + 0x24], eax
mov ecx, edi
sete al
movzx eax, al
push eax
push 5
xor eax, eax
push eax
push dword [esp + 0x84]
push dword [esp + 0x78]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [esp + 0x80]
call fcn.00496e35
xor esi, esi
add esp, 0x24
cmp dword [esp + 0x60], esi
je 0x49d22f
cmp dword [ebp + 0x18], esi
je 0x49d22f
push esi
push esi
push dword [ebp + 0xc]
mov edx, 0xa8
mov ecx, ebx
call fcn.004746eb
add esp, 0xc
mov eax, dword [esp + 0x28]
test eax, eax
je 0x49d356
push esi
push 1
push eax
push 0x56
pop edx
mov ecx, ebx
call fcn.004746eb
add esp, 0xc
mov ecx, ebx
push esi
push esi
push esi
push 9
pop edx
call fcn.004746eb
mov edx, dword [esp + 0x4c]
add esp, 0xc
mov ecx, ebx
mov dword [esp + 0x90], eax
call fcn.00474ac0
mov ecx, dword [edi + 0x38]
mov eax, dword [esp + 0x20]
dec ecx
mov dword [edi + 0x38], ecx
mov dword [esp + 0x40], ecx
cmp dword [eax + 0x24], esi
je 0x49d297
mov eax, dword [esp + 0x38]
push esi
push ecx
dec eax
mov ecx, ebx
push eax
push 0x32
pop edx
call fcn.004746eb
add esp, 0xc
cmp dword [esp + 0x2c], 0
jle 0x49d331
mov ecx, dword [esp + 0x18]
mov edx, ecx
mov ecx, ebx
call fcn.00474f68
push 5
mov esi, eax
lea edi, [esp + 0xa8]
pop ecx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0xa4]
cmp al, 0x8e
je 0x49d313
mov ecx, dword [esp + 0xac]
movzx edx, al
test byte [edx + 0x427760], 1
cmovne ecx, dword [esp + 0x40]
shr eax, 8
movsx eax, al
push eax
push dword [esp + 0xb8]
push dword [esp + 0xb8]
push ecx
push dword [esp + 0xb8]
mov ecx, ebx
call fcn.00474815
mov edx, dword [esp + 0xba]
add esp, 0x14
mov ecx, ebx
call fcn.00474c95
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
dec eax
inc ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], ecx
test eax, eax
jg 0x49d2a6
mov edi, dword [esp + 0x68]
push dword [esp + 0x20]
mov ecx, edi
push 2
pop eax
mov edx, eax
call fcn.00495631
mov edx, dword [esp + 0x94]
pop ecx
mov ecx, ebx
call fcn.00474f68
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
mov dword [esp + 0x8c], 1
jmp 0x49d4f1
cmp eax, edx
je 0x49d3c4
xor edi, edi
cmp di, word [edx + 0x32]
mov dword [esp + 0x34], edi
mov edi, dword [esp + 0x68]
jae 0x49d3c4
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x34]
mov edx, dword [edx + 4]
lea eax, [ecx + edi]
push eax
mov ecx, esi
mov dx, word [edx + edi*2]
call fcn.00490d5b
cwde
mov ecx, ebx
push eax
push dword [esp + 0x44]
push 0x5e
pop edx
call fcn.004746eb
mov edx, dword [esp + 0x3c]
add esp, 0xc
mov ecx, dword [esp + 0x64]
inc edi
movzx eax, word [edx + 0x32]
cmp edi, eax
jl 0x49d382
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 0x18]
test ecx, ecx
je 0x49d15b
movzx ecx, word [edx + 0x32]
mov eax, dword [eax + 0x38]
mov edx, dword [ebx + 0x6c]
and al, 3
add edx, ecx
mov dword [esp + 0x34], 0x34
mov dword [esp + 0x7c], edx
cmp al, 2
mov edx, dword [esp + 0x64]
cmove edx, dword [esp + 0x38]
mov dword [esp + 0xa0], edx
xor edx, edx
mov eax, edx
mov dword [esp + 0x2c], eax
test ecx, ecx
je 0x49d4b3
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 0x20]
mov ecx, edi
mov edx, dword [edx + eax*4]
call fcn.00495eac
mov edx, eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x2c]
movzx ecx, word [ecx + eax*2]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x30]
movzx ecx, word [ecx + 0x32]
dec ecx
cmp eax, ecx
jne 0x49d451
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x34], 0x35
add eax, dword [esp + 0xa0]
mov ecx, esi
push 0xfffffffffffffffe
push edx
mov edx, dword [esp + 0x98]
push eax
push dword [esp + 0x88]
call fcn.00490d7b
mov ecx, dword [ebp + 0x18]
mov edx, dword [esp + 0x44]
inc ecx
cwde
add eax, ecx
mov ecx, ebx
push eax
call fcn.00474815
add esp, 0x14
mov edx, 0x90
mov ecx, ebx
call fcn.00474c95
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
inc ecx
mov dword [esp + 0x2c], ecx
movzx eax, word [eax + 0x32]
cmp ecx, eax
mov eax, ecx
jl 0x49d40b
jmp 0x49d158
mov ecx, dword [ebp + 0x18]
jmp 0x49d15d
mov eax, dword [esp + 0x1c]
mov ecx, edi
add eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x30]
push eax
push dword [esp + 0x24]
push esi
call fcn.004af798
add esp, 0xc
mov edx, dword [ebp + 0x24]
mov ecx, ebx
call fcn.00474744
jmp 0x49d4f1
push dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov ecx, edi
call fcn.00495631
pop ecx
mov edx, dword [esp + 0x58]
mov ecx, ebx
call fcn.00474ac0
mov eax, dword [esp + 0x64]
cmp eax, dword [esp + 0x38]
je 0x49d516
push dword [esp + 0x74]
mov edx, eax
mov ecx, edi
call fcn.0048b599
add esp, 4
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x49d561
mov esi, dword [esp + 0x84]
test esi, esi
je 0x49d561
mov eax, dword [eax + 0x10]
test eax, eax
je 0x49d53b
xor ecx, ecx
cmp dword [eax], ecx
je 0x49d53b
cmp dword [eax + 0x1c], ecx
jne 0x49d561
mov edx, dword [esp + 0x70]
mov ecx, ebx
lea edx, [edx + 1]
call fcn.00474744
mov edx, esi
mov ecx, ebx
call fcn.00474f68
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
xor eax, eax
mov dword [esp + 0x84], eax
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x50], 0
je 0x49d595
mov eax, dword [esp + 0x80]
inc eax
mov ecx, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x1c], ecx
cmp ecx, dword [esp + 0x44]
jge 0x49d5b5
mov eax, dword [esp + 0x4c]
lea eax, [eax + ecx*8]
mov ecx, dword [eax + 4]
mov esi, dword [eax]
jmp 0x49d5a1
mov eax, dword [esp + 0x44]
inc ecx
mov esi, dword [eax + 0x14]
mov dword [esp + 0x44], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], ecx
test esi, esi
je 0x49d5b5
mov edx, dword [ebp + 0x30]
jmp 0x49ce2f
mov eax, dword [esp + 0x88]
test eax, eax
je 0x49d5dd
mov edx, eax
mov ecx, ebx
call fcn.00474744
mov edx, dword [esp + 0x9c]
mov ecx, ebx
call fcn.00474f68
mov ecx, dword [ebx + 0x6c]
mov dword [eax + 8], ecx
cmp dword [esp + 0x78], 0
je 0x49d66e
mov esi, dword [esp + 0x40]
xor eax, eax
push eax
push esi
push dword [esp + 0x30]
mov ecx, ebx
push 0x11
pop edx
call fcn.004746eb
add esp, 0xc
cmp dword [esp + 0x30], 0
jne 0x49d65a
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x49d630
push eax
push dword [esp + 0x70]
mov ecx, ebx
push dword [ebp + 0x14]
push 0x35
pop edx
call fcn.004746eb
add esp, 0xc
mov edx, 0x90
mov ecx, ebx
call fcn.00474c95
push dword [ebp + 0x14]
mov ecx, ebx
push dword [esp + 0x70]
push dword [ebp + 0xc]
push 0x1f
pop edx
call fcn.004746eb
add esp, 0xc
mov ecx, edi
push dword [esp + 0x10]
push 2
pop eax
mov edx, eax
call fcn.00495753
pop ecx
jmp 0x49d665
mov edx, dword [esp + 0x6c]
mov ecx, ebx
call fcn.00474744
mov edx, esi
mov ecx, ebx
call fcn.00474ac0
mov esi, dword [esp + 0x10]
test byte [esi + 0x1c], 0x80
jne 0x49d6ad
mov eax, dword [esp + 0x1c]
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.004746eb
add esp, 0xc
cmp byte [esp + 0x17], 0
jne 0x49d6ad
xor eax, eax
mov edx, esi
push eax
mov ecx, ebx
call fcn.0049b076
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