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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd4
mov eax, dword [0x4010c0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, ecx
mov dword [ebp - 0x70], eax
mov eax, dword [ebp + 0x14]
xor ecx, ecx
push esi
mov dword [ebp - 0xc4], eax
or eax, 0xffffffff
mov esi, dword [ebx]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0xa0], ebx
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0xb8], ecx
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0xc0], ecx
mov dword [ebp - 0xbc], ecx
mov byte [ebp - 0x49], cl
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0xb0], esi
cmp dword [ebx + 0x24], ecx
jne 0x49bbca
mov dword [ebp - 0x20], ecx
test edi, edi
je 0x49b700
test dword [edi + 4], 0x200
je 0x49b700
cmp dword [edi + 0x34], ecx
jne 0x49b700
mov eax, dword [edi + 0x1c]
mov edx, edi
mov dword [edi + 0x1c], ecx
mov ecx, esi
push 1
mov dword [ebp - 0x98], eax
call fcn.004a340c
and dword [ebp - 0x48], 0
pop ecx
mov edx, dword [ebp - 0x8c]
mov ecx, ebx
call fcn.004962cc
mov edi, eax
mov dword [ebp - 0x68], edi
test edi, edi
je 0x49bbc7
mov edx, dword [edi + 0x3c]
mov ecx, esi
call fcn.004a2c91
mov ecx, eax
mov dword [ebp - 0x64], eax
mov eax, dword [esi + 0x10]
add ecx, ecx
push dword [eax + ecx*8]
mov ecx, ebx
push 0
push dword [edi]
push 0x12
pop edx
call fcn.0048fcdf
add esp, 0xc
test eax, eax
jne 0x49bbc7
mov eax, dword [edi + 0x1c]
mov edx, edi
shr eax, 7
mov ecx, ebx
and eax, 0xffffff01
mov dword [ebp - 8], eax
lea eax, [ebp - 0xd0]
push eax
push 0
push 0x7f
call fcn.004acac3
mov esi, eax
add esp, 0xc
mov al, byte [edi + 0x2b]
mov edx, edi
mov ecx, ebx
mov dword [ebp - 0xa8], esi
mov byte [ebp - 0x55], al
call fcn.0049313c
test eax, eax
jne 0x49bbc7
push esi
mov edx, edi
mov ecx, ebx
call fcn.004963ac
pop ecx
test eax, eax
jne 0x49bbc7
mov ecx, ebx
call fcn.004a5717
mov esi, eax
mov dword [ebp - 0x60], esi
test esi, esi
je 0x49bbc7
cmp byte [ebx + 0x12], 0
jne 0x49b7c2
or dword [esi + 0x98], 0x10
cmp dword [ebp - 0x48], 0
jne 0x49b7d5
cmp dword [ebp - 0xa8], 0
jne 0x49b7d5
xor edx, edx
jmp 0x49b7d8
xor edx, edx
inc edx
push dword [ebp - 0x64]
mov ecx, ebx
call fcn.004955b2
cmp dword [ebp - 0x70], 0
pop ecx
jne 0x49b814
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x49b814
cmp dword [ebp - 0xa8], 0
jne 0x49b814
push dword [ebp - 0x64]
mov edx, edi
mov ecx, ebx
push dword [ebp + 0x10]
push eax
call fcn.0049da34
add esp, 0xc
test eax, eax
jne 0x49c4a8
mov edx, dword [ebp - 0x64]
mov ecx, ebx
push edi
call fcn.0049b3f0
pop ecx
mov ecx, dword [ebx + 0x2c]
mov dword [ebp - 0xb4], eax
lea eax, [ecx + 1]
mov edx, eax
mov dword [ebp - 0xac], eax
movsx eax, word [edi + 0x22]
inc eax
mov dword [ebp - 0x5c], edx
add eax, ecx
mov dword [ebx + 0x2c], eax
cmp byte [edi + 0x2b], 1
jne 0x49b851
lea edx, [ecx + 2]
inc eax
mov dword [ebp - 0x5c], edx
mov dword [ebx + 0x2c], eax
mov ecx, dword [edi + 0x1c]
lea eax, [edx + 1]
and ecx, 0x440
mov dword [ebp - 0x94], eax
neg ecx
sbb cl, cl
inc cl
mov dword [ebp - 0x7c], ecx
mov ecx, dword [ebp - 0x70]
test ecx, ecx
je 0x49b986
mov eax, dword [ecx]
xor edx, edx
mov byte [ecx + 4], 1
test eax, eax
jle 0x49b899
mov esi, dword [ebp - 0x70]
add ecx, 0xc
or dword [ecx], 0xffffffff
inc edx
mov eax, dword [esi]
lea ecx, [ecx + 8]
cmp edx, eax
jl 0x49b889
mov esi, dword [ebp - 0x60]
xor ecx, ecx
mov dword [ebp - 0x54], ecx
test eax, eax
jle 0x49b986
mov eax, dword [ebp - 0x70]
add eax, 8
mov dword [ebp - 0x50], eax
movsx eax, word [edi + 0x22]
xor edx, edx
mov dword [ebp - 0xc8], edx
test eax, eax
jle 0x49b943
mov eax, dword [ebp - 0x70]
mov ecx, dword [eax + ecx*8 + 8]
mov eax, dword [edi + 4]
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x6c], eax
mov edx, dword [eax]
call fcn.0045c824
mov edx, dword [ebp - 0xc8]
test eax, eax
je 0x49b907
mov eax, dword [ebp - 0x6c]
inc edx
movsx ecx, word [edi + 0x22]
add eax, 0x10
cmp edx, ecx
mov dword [ebp - 0xc8], edx
mov ecx, dword [ebp - 0x84]
mov dword [ebp - 0x6c], eax
jl 0x49b8d6
jmp 0x49b940
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 4], edx
movzx eax, cl
xor ecx, ecx
cmp dword [ebp - 0x54], edx
cmovne eax, ecx
mov ecx, dword [ebp - 0x74]
mov byte [ebp - 0x7c], al
movsx eax, word [edi + 0x20]
cmp edx, eax
mov eax, edx
cmove ecx, dword [ebp - 0x54]
add eax, eax
mov dword [ebp - 0x74], ecx
mov ecx, dword [edi + 4]
test byte [ecx + eax*8 + 0xe], 0x60
jne 0x49bc3f
mov ecx, dword [ebp - 0x54]
movsx eax, word [edi + 0x22]
cmp edx, eax
jl 0x49b973
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax]
call fcn.004871f5
test eax, eax
je 0x49bc55
cmp byte [ebp - 8], 0
jne 0x49bc55
mov ecx, dword [ebp - 0x54]
mov eax, ecx
mov dword [ebp - 0x74], eax
mov byte [ebp - 0x7c], 0
mov eax, dword [ebp - 0x70]
inc ecx
add dword [ebp - 0x50], 8
mov dword [ebp - 0x54], ecx
cmp ecx, dword [eax]
jl 0x49b8af
cmp dword [ebp - 0x48], 0
je 0x49bc7b
inc dword [ebx + 0x2c]
mov eax, dword [esi + 0x6c]
mov ecx, dword [ebx + 0x2c]
mov dword [ebp - 0x84], eax
inc eax
push eax
push 0
push ecx
mov dword [ebp - 0x6c], ecx
mov ecx, esi
push 0xb
pop edx
call fcn.004746eb
mov eax, dword [ebp - 0x6c]
add esp, 0xc
and dword [ebp - 0x1c], 0
mov ecx, ebx
and dword [ebp - 0x10], 0
mov edx, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
xor eax, eax
cmp byte [ebp - 0x7c], al
mov byte [ebp - 0x24], 0xd
cmovne eax, dword [ebp - 0x94]
mov dword [ebp - 0x18], eax
movsx eax, word [edi + 0x22]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x24]
push eax
call fcn.004a9992
pop ecx
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x80], ecx
test eax, eax
jne 0x49bbc7
cmp dword [ebx + 0x24], eax
jne 0x49bbc7
mov edx, dword [ebp - 0x6c]
mov ecx, esi
call fcn.00474a32
mov edx, dword [ebp - 0x84]
mov ecx, esi
call fcn.00474f68
cmp dword [ebp - 0xa8], 0
mov ecx, dword [esi + 0x6c]
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0x48]
mov eax, dword [eax + 0x1c]
mov eax, dword [eax]
mov dword [ebp - 0x54], eax
jne 0x49ba47
mov edx, dword [ebp - 0x64]
mov ecx, ebx
push edi
call fcn.0049b19b
pop ecx
test eax, eax
je 0x49bb03
mov edx, dword [ebx + 0x28]
mov ecx, ebx
mov byte [ebp - 0x49], 1
mov dword [ebp - 0x78], edx
lea eax, [edx + 1]
mov dword [ebx + 0x28], eax
call fcn.0048b52b
mov edi, eax
call fcn.0048b52b
push 0
push dword [ebp - 0x54]
mov ecx, esi
mov ebx, eax
push edx
push 0x76
pop edx
call fcn.004746eb
add esp, 0xc
mov ecx, esi
push 0
push 0
push dword [ebp - 0x20]
push 0xc
pop edx
call fcn.004746eb
mov ecx, dword [ebp - 0x60]
add esp, 0xc
mov esi, eax
push edi
push dword [ebp - 0x54]
push dword [ebp - 0x80]
push 0x61
pop edx
call fcn.004746eb
mov ecx, dword [ebp - 0x60]
add esp, 0xc
push 0
push ebx
push dword [ebp - 0x78]
push 0x7f
pop edx
call fcn.004746eb
mov ecx, dword [ebp - 0x60]
add esp, 0xc
mov edx, 0x80
push ebx
push edi
push dword [ebp - 0x78]
call fcn.004746eb
mov ecx, dword [ebp - 0x60]
add esp, 0xc
mov edx, esi
call fcn.00474744
mov edx, esi
mov esi, dword [ebp - 0x60]
mov ecx, esi
call fcn.00474f68
mov ecx, dword [esi + 0x6c]
mov edx, edi
mov dword [eax + 8], ecx
mov ecx, dword [ebp - 0xa0]
call fcn.0048b54a
mov edx, ebx
mov ebx, ecx
call fcn.0048b54a
mov edi, dword [ebp - 0x68]
mov edx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x70]
test ecx, ecx
jne 0x49bcbf
test edx, edx
jle 0x49bcdf
movsx edx, word [edi + 0x20]
mov dword [ebp - 0x74], edx
test edx, edx
js 0x49bb5f
test byte [edi + 0x1c], 0x60
je 0x49bb5f
lea eax, [edx - 1]
mov dword [ebp - 0x84], eax
test eax, eax
js 0x49bb5f
mov esi, dword [edi + 4]
mov ecx, eax
shl ecx, 4
add ecx, 0xe
add esi, ecx
mov ecx, eax
test byte [esi], 0x60
lea eax, [edx - 1]
lea esi, [esi - 0x10]
cmove eax, edx
sub ecx, 1
mov edx, eax
jns 0x49bb46
mov esi, dword [ebp - 0x60]
mov dword [ebp - 0x74], edx
test byte [edi + 0x1c], 0x62
je 0x49bb98
movsx edx, word [edi + 0x22]
test edx, edx
jle 0x49bb98
mov ecx, dword [edi + 4]
mov ebx, dword [ebp - 0x90]
add ecx, 0xe
test byte [ecx], 0x62
lea eax, [ebx + 1]
lea ecx, [ecx + 0x10]
cmove eax, ebx
mov ebx, eax
sub edx, 1
jne 0x49bb79
mov dword [ebp - 0x90], ebx
mov ebx, dword [ebp - 0xa0]
movsx eax, word [edi + 0x22]
sub eax, dword [ebp - 0x90]
mov edx, dword [ebp - 0x54]
cmp edx, eax
je 0x49bcdf
push edx
push eax
mov eax, dword [ebp - 0x8c]
add eax, 8
push eax
push 0x430eb0
push ebx
call fcn.0045c6d7
add esp, 0x14
mov edi, dword [ebp - 0x48]
mov ebx, dword [ebp - 0xb0]
mov ecx, ebx
mov edx, dword [ebp - 0x8c]
call fcn.00495018
mov eax, dword [ebp - 0x98]
test eax, eax
je 0x49bbf0
mov edx, eax
mov ecx, ebx
call fcn.00486cac
mov eax, dword [ebp - 0xc4]
test eax, eax
je 0x49bc03
mov edx, eax
mov ecx, ebx
call fcn.004af33a
test edi, edi
je 0x49bc13
push 1
mov edx, edi
mov ecx, ebx
call fcn.004a340c
pop ecx
mov edx, dword [ebp - 0x70]
mov ecx, ebx
call fcn.00494d62
mov eax, dword [ebp - 0x9c]
test eax, eax
je 0x49bc30
mov edx, eax
mov ecx, ebx
call fcn.00459528
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004caec8
leave
ret
push dword [ecx + eax*8]
push 0x430e64
push ebx
call fcn.0045c6d7
add esp, 0xc
jmp 0x49bbc7
mov eax, dword [ebp - 0x50]
push dword [eax]
mov eax, dword [ebp - 0x8c]
add eax, 8
push eax
push 0x430e90
push ebx
call fcn.0045c6d7
add esp, 0x10
mov byte [ebx + 0x11], 1
jmp 0x49bbc7
or dword [ebp - 0x78], 0xffffffff
lea edi, [ebp - 0x44]
push 8
xor eax, eax
pop ecx
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x98]
mov dword [ebp - 0x44], ebx
test ecx, ecx
je 0x49bcb2
mov eax, dword [ecx]
mov edx, ecx
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x54], eax
call fcn.00484e61
test eax, eax
jne 0x49bbc7
jmp 0x49bb00
mov edi, dword [ebp - 0x68]
xor edx, edx
mov dword [ebp - 0x54], edx
jmp 0x49bb06
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x74], eax
cmp edx, dword [ecx]
je 0x49bcdf
push dword [ecx]
push edx
push 0x430ee4
push ebx
call fcn.0045c6d7
add esp, 0x10
jmp 0x49bbc7
mov ecx, dword [ebp - 0xb0]
xor edx, edx
mov eax, edx
mov ecx, dword [ecx + 0x24]
and ecx, 1
or eax, ecx
je 0x49bd23
cmp byte [ebx + 0x12], dl
jne 0x49bd23
cmp dword [ebx + 0x7c], edx
jne 0x49bd23
cmp byte [ebx + 0x9d], dl
jne 0x49bd23
inc dword [ebx + 0x2c]
mov ecx, esi
mov eax, dword [ebx + 0x2c]
push edx
push eax
push edx
push 0x47
pop edx
mov dword [ebp - 0xcc], eax
call fcn.004746eb
add esp, 0xc
xor edx, edx
cmp byte [ebp - 0x55], 2
je 0x49bdb0
lea eax, [ebp - 0xb8]
mov ecx, ebx
push eax
lea eax, [ebp - 0x88]
push eax
push edx
push 0xffffffffffffffff
push edx
push 0x71
mov edx, edi
call fcn.0049d815
mov ecx, dword [ebp - 0xb0]
mov dword [ebp - 0x6c], eax
push 0
lea eax, [eax*4 + 8]
push eax
call fcn.004597ba
add esp, 0x20
mov dword [ebp - 0x9c], eax
test eax, eax
je 0x49bbc7
mov edx, dword [edi + 8]
xor ecx, ecx
cmp dword [ebp - 0x6c], ecx
jle 0x49bda0
mov esi, dword [ebp - 0x6c]
mov edi, eax
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
mov dword [edi + ecx*4], eax
movzx eax, word [edx + 0x34]
add dword [ebx + 0x2c], eax
inc ecx
mov edx, dword [edx + 0x14]
cmp ecx, esi
jl 0x49bd82
mov edi, dword [ebp - 0x68]
mov esi, dword [ebp - 0x60]
mov eax, dword [ebx + 0x2c]
mov edx, dword [ebp - 0x9c]
inc eax
mov dword [ebx + 0x2c], eax
mov dword [edx + ecx*4], eax
mov ecx, dword [ebp - 0xc4]
test ecx, ecx
je 0x49be66
mov al, byte [edi + 0x2b]
cmp al, 1
jne 0x49bdd1
push dword [edi]
push 0x430f00
jmp 0x49bc47
cmp al, 2
jne 0x49bde7
push 0x430f30
push ebx
call fcn.0045c6d7
pop ecx
pop ecx
jmp 0x49bbc7
mov edx, dword [ecx]
mov ecx, ebx
call fcn.00493dd1
test eax, eax
jne 0x49bbc7
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x94]
mov dword [eax + 0x34], edx
mov eax, dword [ebp - 0xc4]
mov dword [ebp - 0x6c], eax
cmp dword [eax], 0
mov edi, dword [ebp - 0x8c]
mov dword [eax + 0x20], edi
mov edi, dword [ebp - 0xb8]
mov dword [eax + 0x2c], edi
mov edi, dword [ebp - 0x68]
mov dword [eax + 0x24], ecx
mov dword [eax + 0x28], edx
je 0x49be5c
mov edx, dword [ebp - 0x8c]
mov ecx, ebx
push eax
call fcn.004af4b9
pop ecx
test eax, eax
jne 0x49bbc7
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x94]
mov edx, dword [ebp - 0x88]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x6c], eax
test eax, eax
jne 0x49be16
cmp byte [ebp - 0x49], 0
je 0x49be8e
push 0
push 0
push dword [ebp - 0x78]
mov ecx, esi
push 0x24
pop edx
call fcn.004746eb
mov dword [ebp - 0xc0], eax
mov eax, dword [esi + 0x6c]
mov dword [ebp - 0xbc], eax
jmp 0x49bed0
cmp dword [ebp - 0x48], 0
je 0x49bed3
push 0
push 0
push dword [ebp - 0x20]
mov ecx, esi
push 0xc
pop edx
call fcn.004746eb
mov dword [ebp - 0xbc], eax
add esp, 0xc
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0x74]
test eax, eax
js 0x49bed3
mov ecx, dword [ebp - 0x80]
push 0
push dword [ebp - 0x5c]
add ecx, eax
push ecx
push 0x50
pop edx
mov ecx, esi
call fcn.004746eb
add esp, 0xc
and dword [ebp - 0x90], 0
xor edx, edx
mov ecx, dword [ebp - 0x94]
xor eax, eax
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x64], edx
cmp ax, word [edi + 0x22]
jge 0x49c04a
and dword [ebp - 0x7c], eax
movsx eax, word [edi + 0x20]
cmp edx, eax
jne 0x49bf0c
push 0
push 0
push ecx
push 0x4c
pop edx
jmp 0x49c022
mov edx, dword [ebp - 0x7c]
add edx, dword [edi + 4]
movzx eax, word [edx + 0xe]
test al, 0x62
je 0x49bf5a
inc dword [ebp - 0x90]
test al, 0x20
je 0x49bf2a
dec ecx
jmp 0x49c02f
test al, 0x40
je 0x49bf3d
test byte [ebp - 0xd0], 1
je 0x49c02f
jmp 0x49beff
cmp dword [ebp - 0x70], 0
jne 0x49bf60
push ecx
mov ecx, edi
call fcn.00490862
mov edx, eax
mov ecx, ebx
call fcn.00489d3b
pop ecx
jmp 0x49c02c
cmp dword [ebp - 0x70], 0
je 0x49bfa6
mov edx, dword [ebp - 0x70]
xor eax, eax
mov edx, dword [edx]
test edx, edx
jle 0x49bf9a
mov esi, dword [ebp - 0x70]
mov ebx, edx
mov edi, dword [ebp - 0x64]
add esi, 0xc
mov dword [ebp - 0x84], esi
mov esi, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x84]
cmp dword [ebx], edi
je 0x49bf91
inc eax
add ebx, 8
cmp eax, edx
jl 0x49bf85
mov ebx, dword [ebp - 0xa0]
mov edi, dword [ebp - 0x68]
cmp eax, edx
jl 0x49bfb5
mov edx, dword [edi + 4]
add edx, dword [ebp - 0x7c]
jmp 0x49bf43
cmp dword [ebp - 0x54], 0
je 0x49bf43
mov eax, dword [ebp - 0x64]
sub eax, dword [ebp - 0x90]
cmp byte [ebp - 0x49], 0
je 0x49bfc7
push ecx
push eax
push dword [ebp - 0x78]
push 0x5e
jmp 0x49bf06
cmp dword [ebp - 0x48], 0
je 0x49bfe5
mov edx, dword [ebp - 0x80]
cmp edx, dword [ebp - 0x94]
je 0x49c02f
push 0
push ecx
add eax, edx
push eax
push 0x51
jmp 0x49bf06
mov edx, dword [ebp - 0x98]
imul eax, eax, 0x14
push ecx
mov ecx, ebx
mov eax, dword [eax + edx + 8]
mov edx, eax
mov dword [ebp - 0x84], eax
call fcn.00488b5d
pop ecx
mov ecx, dword [ebp - 0x50]
cmp eax, ecx
je 0x49c02f
mov edx, dword [ebp - 0x84]
push 0
push ecx
push eax
mov edx, dword [edx + 4]
shr edx, 0x16
not edx
and edx, 1
or edx, 0x50
mov ecx, esi
call fcn.004746eb
add esp, 0xc
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x64]
add dword [ebp - 0x7c], 0x10
inc edx
movsx eax, word [edi + 0x22]
inc ecx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x50], ecx
cmp edx, eax
jl 0x49bef7
dec dword [ebx + 0x38]
test byte [ebp - 0xd0], 1
mov eax, dword [ebx + 0x38]
mov dword [ebp - 0x64], eax
je 0x49c190
movsx edx, word [edi + 0x22]
mov ecx, ebx
inc edx
call fcn.0048b563
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x68], eax
test ecx, ecx
jns 0x49c07a
push 0x47
jmp 0x49c0f3
cmp byte [ebp - 0x49], 0
push eax
je 0x49c094
push ecx
push dword [ebp - 0x78]
mov ecx, esi
push 0x5e
pop edx
call fcn.004746eb
add esp, 0xc
jmp 0x49c0a9
mov eax, dword [ebp - 0x98]
imul edx, ecx, 0x14
mov ecx, ebx
mov edx, dword [edx + eax + 8]
call fcn.00489c9f
pop ecx
push 0
push 0
push dword [ebp - 0x68]
mov ecx, esi
push 0x33
pop edx
call fcn.004746eb
mov ecx, dword [ebp - 0x60]
add esp, 0xc
mov esi, eax
push 0
push dword [ebp - 0x68]
push 0xffffffffffffffff
push 0x47
pop edx
call fcn.004746eb
add esp, 0xc
mov edx, esi
mov esi, dword [ebp - 0x60]
mov ecx, esi
call fcn.00474f68
mov ecx, dword [esi + 0x6c]
push 0xd
mov dword [eax + 8], ecx
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0xa4], eax
xor eax, eax
pop edx
push 0
push eax
push dword [ebp - 0xa4]
mov ecx, esi
call fcn.004746eb
mov ecx, dword [ebp - 0x68]
add esp, 0xc
movsx eax, word [edi + 0x24]
inc ecx
dec eax
mov dword [ebp - 0xa4], ecx
push eax
mov eax, dword [ebp - 0x5c]
push ecx
inc eax
mov ecx, esi
push eax
push 0x50
pop edx
call fcn.004746eb
add esp, 0xc
test byte [edi + 0x1c], 0x60
je 0x49c13f
mov edx, dword [ebp - 0xa4]
mov ecx, ebx
push edi
call fcn.0049b24b
pop ecx
cmp byte [ebp - 0x55], 2
je 0x49c155
push dword [ebp - 0xa4]
mov edx, edi
mov ecx, esi
call fcn.0049b076
pop ecx
push dword [ebp - 0x64]
movsx eax, word [edi + 0x22]
push dword [ebp + 0x10]
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0xa8]
sub ecx, eax
dec ecx
push ecx
push edi
push 1
push 0
push 0x7f
mov ecx, ebx
call fcn.004ad585
movsx eax, word [edi + 0x22]
add esp, 0x1c
mov edx, dword [ebp - 0x68]
inc eax
mov ecx, ebx
push eax
call fcn.0048b599
add esp, 4
cmp byte [ebp - 0x55], 2
je 0x49c40c
cmp byte [edi + 0x2b], 1
jne 0x49c1b7
push 0
push dword [ebp - 0xac]
mov ecx, esi
push 0
push 0x4b
pop edx
call fcn.004746eb
add esp, 0xc
mov eax, dword [ebp - 0x74]
test eax, eax
js 0x49c278
cmp byte [ebp - 0x49], 0
je 0x49c1de
push dword [ebp - 0x5c]
mov ecx, esi
push eax
push dword [ebp - 0x78]
push 0x5e
pop edx
call fcn.004746eb
add esp, 0xc
jmp 0x49c20b
cmp dword [ebp - 0x48], 0
jne 0x49c20b
mov ecx, dword [ebp - 0x98]
imul eax, eax, 0x14
mov edx, dword [eax + ecx + 8]
cmp byte [edx], 0x79
jne 0x49c200
cmp byte [edi + 0x2b], 1
jne 0x49c284
push dword [ebp - 0x5c]
mov ecx, ebx
call fcn.00489c9f
pop ecx
cmp byte [edi + 0x2b], 1
mov ecx, esi
push 0
je 0x49c258
push 0
push dword [ebp - 0x5c]
push 0x33
pop edx
call fcn.004746eb
mov ecx, dword [ebp - 0x60]
add esp, 0xc
mov esi, eax
push dword [ebp - 0xb4]
push dword [ebp - 0x5c]
push dword [ebp - 0x88]
push 0x7f
pop edx
call fcn.004746eb
add esp, 0xc
mov edx, esi
mov esi, dword [ebp - 0x60]
mov ecx, esi
call fcn.00474f68
mov ecx, dword [esi + 0x6c]
mov dword [eax + 8], ecx
jmp 0x49c26d
mov eax, dword [esi + 0x6c]
add eax, 2
push eax
push dword [ebp - 0x5c]
push 0x32
pop edx
call fcn.004746eb
add esp, 0xc
push 0
push 0
push dword [ebp - 0x5c]
push 0xd
jmp 0x49c2b2
cmp byte [edi + 0x2b], 1
je 0x49c2a9
cmp byte [ebp - 8], 0
jne 0x49c2a9
push dword [ebp - 0xb4]
mov ecx, esi
push dword [ebp - 0x5c]
push dword [ebp - 0x88]
push 0x7f
pop edx
call fcn.004746eb
add esp, 0xc
mov dword [ebp - 0x80], 1
jmp 0x49c2c1
push 0
push dword [ebp - 0x5c]
push 0
push 0x4b
pop edx
mov ecx, esi
call fcn.004746eb
add esp, 0xc
and dword [ebp - 0x80], 0
mov eax, dword [ebp - 0xb4]
test eax, eax
jle 0x49c2e1
mov ecx, dword [ebx + 8]
mov edx, 0x9f
push 0
push dword [ebp - 0x5c]
push eax
call fcn.004746eb
add esp, 0xc
test byte [edi + 0x1c], 0x60
je 0x49c2f6
mov edx, dword [ebp - 0x5c]
mov ecx, ebx
push edi
lea edx, [edx + 1]
call fcn.0049b24b
pop ecx
cmp byte [edi + 0x2b], 1
mov edx, edi
jne 0x49c35e
mov ecx, dword [ebp - 0xb0]
call fcn.004b01e3
mov ecx, ebx
mov esi, eax
call fcn.004b1034
movsx eax, word [edi + 0x22]
push 0xfffffffffffffff5
push esi
push dword [ebp - 0xac]
mov esi, dword [ebp - 0x60]
add eax, 2
push eax
push 1
push 7
pop edx
mov ecx, esi
call fcn.00474815
mov eax, dword [ebp + 0x10]
add esp, 0x14
movzx edx, ax
cmp eax, 0xb
mov ecx, esi
push 2
pop eax
cmove edx, eax
call fcn.00474c95
cmp dword [ebx + 0x78], 0
mov eax, ebx
cmovne eax, dword [ebx + 0x78]
mov byte [eax + 0x15], 1
jmp 0x49c40c
push dword [ebp - 0xc4]
xor ecx, ecx
lea eax, [ebp - 8]
push ecx
push eax
push dword [ebp - 0x64]
mov eax, dword [ebp - 0x74]
push dword [ebp + 0x10]
shr eax, 0x1f
xor al, 1
mov dword [ebp - 8], ecx
movzx eax, al
push eax
push ecx
push dword [ebp - 0xac]
mov ecx, ebx
push dword [ebp - 0xb8]
push dword [ebp - 0x88]
push dword [ebp - 0x9c]
call fcn.0049c5a3
mov eax, dword [ebp - 0xb0]
xor ecx, ecx
add esp, 0x2c
mov eax, dword [eax + 0x20]
and eax, 0x4000
or eax, ecx
je 0x49c3ce
push ecx
push ecx
push dword [ebp - 0xac]
mov edx, edi
push ecx
mov ecx, ebx
call fcn.0049a277
add esp, 0x10
xor ecx, ecx
cmp dword [ebp - 8], 0
je 0x49c3e0
cmp dword [esi + 0xe0], ecx
je 0x49c3e0
mov eax, ecx
jmp 0x49c3e3
xor eax, eax
inc eax
push eax
push dword [ebp - 0x80]
mov edx, edi
push ecx
push dword [ebp - 0x9c]
mov ecx, ebx
push dword [ebp - 0xac]
push dword [ebp - 0xb8]
push dword [ebp - 0x88]
call fcn.0049d6c0
add esp, 0x1c
mov eax, dword [ebp - 0xcc]
test eax, eax
je 0x49c428
push 0
push 1
push eax
push 0x56
pop edx
mov ecx, esi
call fcn.004746eb
add esp, 0xc
mov edx, dword [ebp - 0xa8]
test edx, edx
je 0x49c45a
push dword [ebp - 0x64]
movsx eax, word [edi + 0x22]
push dword [ebp + 0x10]
mov ecx, dword [ebp - 0x94]
push 2
sub ecx, eax
pop eax
sub ecx, eax
push ecx
push edi
push eax
push 0
push 0x7f
mov ecx, ebx
call fcn.004ad585
add esp, 0x1c
mov edx, dword [ebp - 0x64]
mov ecx, esi
call fcn.00474ac0
cmp byte [ebp - 0x49], 0
je 0x49c4e6
mov edi, dword [ebp - 0x78]
mov ecx, esi
push 0
push dword [ebp - 0xbc]
push edi
push 0x27
pop edx
call fcn.004746eb
mov edx, dword [ebp - 0xc0]
add esp, 0xc
mov ecx, esi
call fcn.00474f68
mov ecx, dword [esi + 0x6c]
push 0
push 0
push edi
mov dword [eax + 8], ecx
mov ecx, esi
push 0x7a
pop edx
call fcn.004746eb
add esp, 0xc
mov edi, dword [ebp - 0x48]
cmp byte [ebx + 0x12], 0
jne 0x49c4c4
cmp dword [ebx + 0x7c], 0
jne 0x49c4c4
cmp dword [ebx + 0x74], 0
je 0x49c4c4
mov ecx, ebx
call fcn.0049b581
mov eax, dword [ebp - 0xcc]
test eax, eax
je 0x49bbca
push 0x430f48
mov edx, eax
mov ecx, esi
call fcn.00496311
pop ecx
jmp 0x49bbca
mov edi, dword [ebp - 0x48]
test edi, edi
je 0x49c4ab
mov edx, dword [ebp - 0xbc]
mov ecx, esi
call fcn.00474744
mov edx, dword [ebp - 0xc0]
mov ecx, esi
call fcn.00474f68
mov ecx, dword [esi + 0x6c]
mov dword [eax + 8], ecx
jmp 0x49c4ab