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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xbc
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x54], eax
mov edi, dword [eax]
mov al, byte [esi]
cmp al, 0x39
ja 0x6147fb
cmp al, 0x34
jae 0x6156ec
cmp al, 0x2d
je 0x6156bb
ja 0x6147e6
cmp al, 0x14
jmp 0x6147f0
cmp al, 0x30
je 0x6156ec
cmp al, 0x31
je 0x615672
jmp 0x615733
cmp al, 0x82
je 0x614840
ja 0x614809
cmp al, 0x3b
je 0x61487a
cmp al, 0x7f
jmp 0x6147f0
cmp al, 0x9c
je 0x6156bb
cmp al, 0x9d
je 0x615108
cmp al, 0x90
jne 0x615733
mov eax, dword [ebp - 0x54]
mov ecx, 0x61e9a0fb
mov dx, word [eax + 0x18]
mov dword [esp], 0x26
mov eax, edi
call fcn.0060899c
jmp 0x615733
mov eax, dword [ebp - 0x54]
mov ebx, dword [esi + 0xc]
mov ecx, 0x61e99f3f
mov dx, word [eax + 0x18]
mov dword [esp], 0x20
mov eax, edi
call fcn.0060899c
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x70], 0
cmp byte [ecx], 0x3b
je 0x614890
mov eax, dword [ebx + 8]
mov ebx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0x70], eax
jmp 0x614890
mov eax, dword [esi + 8]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x6c], eax
jmp 0x6148cb
mov eax, dword [ebx + 8]
cmp byte [edi + 0xc4], 1
mov dword [ebp - 0x5c], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0x6c], eax
jbe 0x6148b2
mov eax, dword [edi + 0x10c]
mov edx, esi
call fcn.005e8415
cmp byte [edi + 0xc4], 1
jbe 0x6148cb
mov eax, dword [edi + 0x10c]
lea edx, [esi + 0x2c]
mov ecx, ebx
call fcn.005e8415
cmp dword [ebp - 0x70], 0
mov eax, dword [edi]
mov dword [ebp - 0x78], 0
mov dword [esi + 0x1c], 0xffffffff
mov dword [esi + 0x2c], 0
mov dword [ebp - 0x80], eax
je 0x614947
mov eax, dword [ebp - 0x54]
test byte [eax + 0x18], 6
jne 0x614939
mov eax, dword [ebp - 0x80]
xor ebx, ebx
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x58], eax
cmp ebx, dword [ebp - 0x58]
jge 0x614930
mov ecx, dword [ebp - 0x80]
mov eax, ebx
mov edx, dword [ebp - 0x70]
shl eax, 4
add eax, dword [ecx + 0x10]
mov ecx, eax
mov eax, dword [eax]
mov dword [ebp - 0x60], ecx
call fcn.005de405
test eax, eax
mov ecx, dword [ebp - 0x60]
jne 0x61492d
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x78], eax
jmp 0x614947
inc ebx
jmp 0x6148ff
mov dword [ebp - 0x78], 0
jmp 0x614947
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x70], 0
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x84], 0x9e
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x68], eax
lea eax, [esi + 0x2c]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x58], 0
mov eax, dword [eax + 4]
test eax, eax
mov dword [ebp - 0x88], eax
je 0x614bc9
add eax, 8
mov dword [ebp - 0x94], 0
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x88]
mov ebx, dword [ebp - 0x94]
cmp ebx, dword [eax]
jge 0x614b9b
mov eax, dword [ebp - 0x74]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x74]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x614a52
test byte [eax + 9], 8
je 0x614a52
mov eax, dword [eax]
mov dword [ebp - 0x90], 0
xor ebx, ebx
mov dword [ebp - 0x8c], eax
mov eax, dword [eax]
mov dword [ebp - 0x9c], eax
cmp ebx, dword [ebp - 0x9c]
jge 0x614a3b
imul eax, ebx, 0x18
mov ecx, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x6c]
mov eax, dword [ecx + eax + 0xc]
mov ecx, dword [ebp - 0x70]
mov dword [esp], ecx
mov ecx, dword [ebp - 0x5c]
call fcn.005dff35
test eax, eax
je 0x614a38
mov eax, dword [ebp - 0x74]
inc dword [ebp - 0x58]
mov word [esi + 0x20], bx
mov dword [ebp - 0x90], 1
mov dword [ebp - 0x60], 2
mov dword [ebp - 0x64], eax
inc ebx
jmp 0x6149f0
cmp dword [ebp - 0x5c], 0
je 0x614b8c
cmp dword [ebp - 0x90], 0
jne 0x614b8c
cmp dword [ebp - 0x70], 0
je 0x614a67
mov eax, dword [ebp - 0x7c]
mov ebx, dword [ebp - 0x78]
cmp dword [eax + 0x48], ebx
jne 0x614b8c
cmp dword [ebp - 0x5c], 0
je 0x614aae
mov eax, dword [ebp - 0x74]
mov ebx, dword [eax + 0xc]
test ebx, ebx
mov eax, ebx
jne 0x614a7e
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax]
mov edx, dword [ebp - 0x5c]
call fcn.005de405
test eax, eax
jne 0x614b8c
cmp byte [edi + 0xc4], 1
jbe 0x614aae
test ebx, ebx
je 0x614aae
mov eax, dword [edi + 0x10c]
mov ecx, dword [ebp - 0xa4]
xor edx, edx
call fcn.005e8415
mov eax, dword [ebp - 0x60]
inc eax
cmp dword [ebp - 0x60], 0
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x64]
cmove eax, dword [ebp - 0x74]
xor ebx, ebx
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x7c]
mov eax, dword [eax + 4]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x7c]
movsx eax, word [eax + 0x2a]
mov dword [ebp - 0x9c], eax
cmp ebx, dword [ebp - 0x9c]
jge 0x614b83
mov ecx, dword [ebp - 0x90]
mov eax, ebx
mov edx, dword [ebp - 0x6c]
shl eax, 4
mov eax, dword [ecx + eax]
call fcn.005de405
test eax, eax
jne 0x614b7d
cmp dword [ebp - 0x58], 1
je 0x614b2d
mov eax, dword [ebp - 0x7c]
inc dword [ebp - 0x58]
movsx eax, word [eax + 0x28]
cmp eax, ebx
mov eax, 0xffffffff
cmovne eax, ebx
mov word [esi + 0x20], ax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0x64], eax
jmp 0x614b83
mov eax, dword [ebp - 0x74]
test byte [eax + 0x24], 4
jne 0x614b7d
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x614b0d
mov eax, dword [ecx + 4]
mov dword [ebp - 0x60], 0
mov dword [ebp - 0xa0], eax
mov edx, dword [ebp - 0xa0]
cmp dword [ebp - 0x60], edx
jge 0x614b0d
mov eax, dword [ecx]
mov dword [ebp - 0xa8], ecx
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x6c]
mov eax, dword [eax + ecx*8]
call fcn.005de405
test eax, eax
je 0x614b7d
inc dword [ebp - 0x60]
mov ecx, dword [ebp - 0xa8]
jmp 0x614b4d
inc ebx
jmp 0x614ae1
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x60], eax
inc dword [ebp - 0x94]
add dword [ebp - 0x74], 0x48
jmp 0x6149a3
cmp dword [ebp - 0x64], 0
je 0x614bc9
mov eax, dword [ebp - 0x64]
mov ebx, dword [ebp - 0x64]
mov eax, dword [eax + 0x2c]
mov dword [esi + 0x1c], eax
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0x10]
mov dword [esi + 0x2c], eax
test byte [ebx + 0x24], 8
je 0x614bc3
or dword [esi + 4], 0x100000
mov eax, dword [eax + 0x48]
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x70], 0
sete dl
cmp dword [ebp - 0x5c], 0
setne al
test dl, al
je 0x614d9b
cmp dword [ebp - 0x60], 0
jne 0x614d9b
mov ebx, dword [edi + 0x78]
test ebx, ebx
je 0x614c3d
movzx ecx, byte [edi + 0x8c]
cmp ecx, 0x75
mov dword [ebp - 0x60], ecx
je 0x614c21
mov edx, dword [ebp - 0x5c]
mov eax, 0x61e99f50
call fcn.005de405
test eax, eax
mov ecx, dword [ebp - 0x60]
jne 0x614c1c
mov dword [esi + 0x1c], 1
jmp 0x614c3d
cmp ecx, 0x74
je 0x614c3b
mov edx, dword [ebp - 0x5c]
mov eax, 0x61e99f54
call fcn.005de405
test eax, eax
jne 0x614c3b
mov dword [esi + 0x1c], 0
jmp 0x614c3d
xor ebx, ebx
mov eax, dword [ebp - 0x68]
test byte [eax + 0x19], 2
je 0x614c71
mov ecx, dword [eax + 8]
test ecx, ecx
mov dword [ebp - 0x60], ecx
je 0x614c71
mov edx, dword [ebp - 0x5c]
mov eax, 0x61e99f58
call fcn.005de405
test eax, eax
jne 0x614c71
mov ecx, dword [ebp - 0x60]
mov eax, dword [ecx + 0x14]
mov ebx, dword [eax + 0x18]
mov dword [esi + 0x1c], 2
test ebx, ebx
mov dword [ebp - 0x60], 0
je 0x614d9b
mov eax, dword [ebx + 0x48]
xor ecx, ecx
mov dword [ebp - 0x78], eax
mov eax, dword [ebx + 4]
mov dword [ebp - 0x60], eax
movsx eax, word [ebx + 0x2a]
mov dword [ebp - 0x74], eax
cmp ecx, dword [ebp - 0x74]
jge 0x614cd1
mov eax, ecx
mov dword [ebp - 0x7c], ecx
mov ecx, dword [ebp - 0x60]
shl eax, 4
mov edx, dword [ebp - 0x6c]
mov eax, dword [ecx + eax]
call fcn.005de405
test eax, eax
mov ecx, dword [ebp - 0x7c]
jne 0x614cce
movsx eax, word [ebx + 0x28]
cmp eax, ecx
jne 0x614cf3
cmp dword [ebp - 0x74], 0
js 0x614d94
or ecx, 0xffffffff
jmp 0x614cf3
inc ecx
jmp 0x614c95
mov eax, dword [ebp - 0x6c]
call fcn.005e82b3
test eax, eax
mov dword [ebp - 0x60], 1
je 0x614d9b
test byte [ebx + 0x24], 0x40
je 0x614cbf
jmp 0x614d9b
mov eax, dword [esi + 0x1c]
inc dword [ebp - 0x58]
cmp eax, 2
jne 0x614d39
cmp byte [edi + 0xc4], 1
jbe 0x614d1a
mov word [esi + 0x20], cx
mov dword [esi + 0x2c], ebx
mov dword [ebp - 0x84], 0x9e
jmp 0x614d94
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x84], 0xa4
mov eax, dword [eax + 8]
add ecx, dword [eax + 0x18]
or dword [esi + 4], 0x400000
mov dword [esi + 0x1c], ecx
jmp 0x614d94
test ecx, ecx
jns 0x614d43
mov byte [esi + 1], 0x44
jmp 0x614d83
test eax, eax
jne 0x614d66
or eax, 0xffffffff
cmp ecx, 0x1f
mov edx, dword [edi + 0x84]
jg 0x614d5c
mov eax, 1
shl eax, cl
or eax, edx
mov dword [edi + 0x84], eax
jmp 0x614d83
or eax, 0xffffffff
cmp ecx, 0x1f
mov edx, dword [edi + 0x88]
jg 0x614d7b
mov eax, 1
shl eax, cl
or eax, edx
mov dword [edi + 0x88], eax
mov dword [esi + 0x2c], ebx
mov word [esi + 0x20], cx
mov dword [ebp - 0x84], 0x4d
mov dword [ebp - 0x60], 1
cmp dword [ebp - 0x58], 0
jne 0x614de6
cmp dword [ebp - 0x60], 1
jne 0x614de6
cmp dword [ebp - 0x64], 0
mov dword [ebp - 0x58], 0
je 0x614de6
mov eax, dword [ebp - 0x68]
test byte [eax + 0x18], 0x20
jne 0x614de6
mov eax, dword [ebp - 0x6c]
call fcn.005e82b3
test eax, eax
je 0x614de6
mov eax, dword [ebp - 0x64]
mov eax, dword [eax + 0x10]
test byte [eax + 0x24], 0x40
jne 0x614de6
mov word [esi + 0x20], 0xffff
mov byte [esi + 1], 0x44
mov dword [ebp - 0x58], 1
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 0x18]
test al, 0x80
mov word [ebp - 0x74], ax
je 0x614ef6
cmp dword [ebp - 0x58], 0
jne 0x614ef6
cmp dword [ebp - 0x5c], 0
jne 0x614ef6
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x58], 0
mov ebx, dword [eax + 8]
mov eax, dword [ebx]
mov dword [ebp - 0x88], eax
mov ecx, dword [ebp - 0x88]
cmp dword [ebp - 0x58], ecx
jge 0x614efc
imul eax, dword [ebp - 0x58], 0x18
mov ecx, dword [ebx + eax + 8]
mov dword [ebp - 0x7c], eax
test ecx, ecx
je 0x614eee
mov edx, dword [ebp - 0x6c]
mov eax, ecx
mov dword [ebp - 0x8c], ecx
call fcn.005de405
test eax, eax
mov ecx, dword [ebp - 0x8c]
jne 0x614eee
test byte [ebp - 0x74], 1
mov eax, dword [ebp - 0x7c]
mov eax, dword [ebx + eax + 4]
jne 0x614e8a
test byte [eax + 4], 2
je 0x614e8a
mov dword [esp + 8], ecx
mov dword [esp + 4], 0x61e99f61
mov dword [esp], edi
call fcn.00608748
jmp 0x614ea2
call fcn.005e0005
dec eax
je 0x614eac
mov dword [esp + 4], 0x61e996be
mov dword [esp], edi
call fcn.00608748
mov eax, 2
jmp 0x615765
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x58]
mov edx, ebx
mov dword [esp + 4], 0x61e984ec
mov dword [esp], esi
mov dword [esp + 8], eax
mov eax, edi
call fcn.005f21cf
cmp byte [edi + 0xc4], 1
jbe 0x615060
mov eax, dword [edi + 0x10c]
mov ecx, esi
xor edx, edx
call fcn.005e8415
jmp 0x615060
inc dword [ebp - 0x58]
jmp 0x614e21
cmp dword [ebp - 0x58], 0
jne 0x614f1a
mov eax, dword [ebp - 0x68]
inc dword [ebp - 0x98]
mov eax, dword [eax + 0xc]
test eax, eax
mov dword [ebp - 0x68], eax
jne 0x614978
mov dword [ebp - 0x58], 0
cmp dword [ebp - 0x58], 0
jne 0x614f51
cmp dword [ebp - 0x5c], 0
jne 0x614f51
test byte [esi + 4], 0x40
je 0x614f3b
mov byte [esi], 0x6a
mov dword [esi + 0x2c], 0
jmp 0x615668
mov eax, esi
call fcn.005e0156
test eax, eax
jne 0x615668
mov eax, 0x61e99f09
jmp 0x614f6c
cmp dword [ebp - 0x58], 1
je 0x614fe9
cmp dword [ebp - 0x58], 0
mov edx, 0x61e99f09
mov eax, 0x61e99f18
cmove eax, edx
cmp dword [ebp - 0x70], 0
je 0x614f9d
mov ebx, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x70]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x61e99f80
mov dword [esp], edi
mov dword [esp + 0x14], ebx
mov ebx, dword [ebp - 0x5c]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
call fcn.00608748
jmp 0x614fdf
cmp dword [ebp - 0x5c], 0
mov ecx, dword [ebp - 0x6c]
je 0x614fc7
mov ebx, dword [ebp - 0x5c]
mov dword [esp + 0x10], ecx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x61e99f8d
mov dword [esp], edi
mov dword [esp + 0xc], ebx
call fcn.00608748
jmp 0x614fdf
mov dword [esp + 0xc], ecx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x61e99f97
mov dword [esp], edi
call fcn.00608748
mov eax, dword [ebp - 0x54]
mov byte [edi + 0x11], 1
inc dword [eax + 0x14]
cmp dword [ebp - 0x64], 0
mov eax, dword [esi + 0x20]
je 0x615023
mov ecx, eax
sub cx, 0
js 0x615023
cmp ax, 0x3f
movsx edx, ax
mov ecx, 0x3f
cmovle ecx, edx
mov ebx, dword [ebp - 0x64]
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
shl edx, cl
shl eax, cl
or dword [ebx + 0x3c], edx
or dword [ebx + 0x38], eax
mov edx, dword [esi + 0xc]
mov eax, dword [ebp - 0x80]
call fcn.005f0a66
mov eax, dword [ebp - 0x80]
mov edx, dword [esi + 0x10]
mov dword [esi + 0xc], 0
call fcn.005f0a66
or dword [esi + 4], 0x800000
cmp dword [ebp - 0x58], 1
mov al, byte [ebp - 0x84]
mov dword [esi + 0x10], 0
mov byte [esi], al
jne 0x614ea2
test byte [esi + 6], 0x40
jne 0x6150f1
mov eax, dword [edi]
cmp dword [eax + 0x130], 0
je 0x6150f1
mov edx, dword [ebp - 0x78]
call fcn.005e0b4f
test eax, eax
mov dword [ebp - 0x58], eax
js 0x6150f1
cmp byte [esi], 0x4d
je 0x615098
mov ebx, dword [ebp - 0x68]
xor edx, edx
mov ecx, dword [ebx + 4]
mov ebx, dword [ecx]
mov dword [ebp - 0x5c], ebx
jmp 0x61509e
mov ebx, dword [edi + 0x78]
jmp 0x6150b7
inc edx
cmp edx, dword [ebp - 0x5c]
jge 0x6150b5
imul ebx, edx, 0x48
mov eax, dword [ecx + ebx + 0x34]
cmp dword [esi + 0x1c], eax
jne 0x61509d
mov ebx, dword [ecx + ebx + 0x18]
jmp 0x6150b7
xor ebx, ebx
test ebx, ebx
movsx edx, word [esi + 0x20]
je 0x6150f1
test dx, dx
jns 0x6150d2
movsx edx, word [ebx + 0x28]
mov ecx, 0x61e98200
test dx, dx
js 0x6150da
shl edx, 4
add edx, dword [ebx + 4]
mov ecx, dword [edx]
mov eax, dword [ebp - 0x58]
mov dword [esp], eax
mov edx, dword [ebx]
mov eax, edi
call fcn.006146c9
cmp eax, 2
jne 0x6150f1
mov byte [esi], 0x6e
mov eax, dword [ebp - 0x54]
inc dword [eax + 0x10]
cmp eax, dword [ebp - 0x68]
je 0x615668
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x54], eax
jmp 0x6150f1
mov eax, dword [esi + 0x14]
xor ebx, ebx
test eax, eax
mov dword [ebp - 0x64], eax
je 0x615116
mov ebx, dword [eax]
mov eax, dword [edi]
mov dword [ebp - 0x58], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x5c], eax
call fcn.005e56a9
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x58]
mov ecx, ebx
mov edx, dword [ebp - 0x5c]
movzx eax, byte [eax + 0x46]
mov dword [esp + 4], 0
mov dword [ebp - 0x60], eax
mov dword [esp], eax
mov eax, dword [ebp - 0x58]
call fcn.005ee8b1
test eax, eax
mov dword [ebp - 0x58], eax
jne 0x61518d
mov eax, dword [ebp - 0x60]
mov dword [esp + 4], 0
mov ecx, 0xfffffffe
mov edx, dword [ebp - 0x5c]
mov dword [esp], eax
mov eax, dword [edi]
call fcn.005ee8b1
cmp eax, 1
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x60], 0
sbb eax, eax
xor edx, edx
inc eax
cmp dword [ebp - 0x58], 1
setb dl
jmp 0x6152da
mov eax, dword [ebp - 0x58]
cmp dword [eax + 0x14], 0
setne al
movzx eax, al
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x58]
test byte [eax + 5], 4
je 0x615257
or dword [esi + 4], 0x41000
cmp ebx, 2
jne 0x61523e
fld1
mov eax, dword [ebp - 0x64]
fchs
mov eax, dword [eax + 0x1c]
fstp qword [ebp - 0x38]
cmp byte [eax], 0x8d
je 0x6151d5
jmp 0x6151d0
fstp st(0)
or eax, 0xffffffff
jmp 0x61521f
mov ebx, dword [eax + 8]
mov eax, ebx
call fcn.005e56a9
lea edx, [ebp - 0x38]
mov ecx, eax
mov dword [esp], 1
mov eax, ebx
call fcn.005f4380
fld qword [ebp - 0x38]
fld1
fxch st(1)
fucomi st(1)
fstp st(1)
ja 0x6151ce
fmul dword [0x61ea96dc]
fnstcw word [ebp - 0x4a]
mov ax, word [ebp - 0x4a]
or ah, 0xc
mov word [ebp - 0x4c], ax
fldcw word [ebp - 0x4c]
fistp dword [ebp - 0x50]
fldcw word [ebp - 0x4a]
mov eax, dword [ebp - 0x50]
test eax, eax
mov dword [esi + 0x1c], eax
jns 0x615257
mov dword [esp + 4], 0x61e99f9e
mov dword [esp], edi
call fcn.00608748
mov eax, dword [ebp - 0x54]
inc dword [eax + 0x14]
jmp 0x615257
mov eax, dword [ebp - 0x58]
mov edx, 0x7800000
mov eax, dword [eax + 0x20]
cmp byte [eax], 0x75
mov eax, 0x800000
cmovne eax, edx
mov dword [esi + 0x1c], eax
mov eax, dword [ebp - 0x58]
mov dword [esp + 4], 0
xor ecx, ecx
mov edx, 0x1f
mov eax, dword [eax + 0x20]
mov dword [esp], eax
mov eax, edi
call fcn.0060bc4d
test eax, eax
je 0x6152a5
dec eax
jne 0x61529d
mov eax, dword [ebp - 0x58]
mov eax, dword [eax + 0x20]
mov dword [esp + 4], 0x61e99fe5
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.00608748
mov eax, dword [ebp - 0x54]
inc dword [eax + 0x14]
mov byte [esi], 0x6e
jmp 0x615668
mov eax, dword [ebp - 0x58]
mov eax, dword [eax + 4]
test ah, 0x28
je 0x6152b7
or dword [esi + 4], 0x80000
test ah, 8
jne 0x6152d6
mov eax, dword [ebp - 0x54]
mov ecx, 0x61e9a008
mov dx, word [eax + 0x18]
mov dword [esp], 0x22
mov eax, edi
call fcn.0060899c
xor eax, eax
xor edx, edx
cmp byte [edi + 0xc4], 1
ja 0x615402
cmp dword [ebp - 0x58], 0
je 0x615317
mov ebx, dword [ebp - 0x58]
cmp dword [ebx + 0x18], 0
jne 0x615317
cmp dword [esi + 0x30], 0
je 0x615317
mov eax, dword [ebp - 0x5c]
mov dword [esp + 4], 0x61e9a024
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x68]
mov dword [esp + 8], eax
jmp 0x6153d2
cmp dword [ebp - 0x60], 0
je 0x615391
mov ebx, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x58]
mov ebx, dword [ebx + 0x18]
mov ecx, dword [ecx + 4]
test bl, 1
je 0x615347
test ecx, 0x10000
je 0x61533c
cmp dword [esi + 0x30], 0
je 0x615347
cmp dword [esi + 0x30], 0
je 0x615391
and bh, 0x40
jne 0x615391
and ecx, 0x10000
mov eax, 0x61e99f2e
jne 0x615360
cmp dword [esi + 0x30], 0
mov edx, 0x61e99f35
cmove eax, edx
mov ebx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x68]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x61e9a050
mov dword [esp], edi
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], ecx
call fcn.00608748
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x60], 0
inc dword [eax + 0x14]
jmp 0x615402
test edx, edx
je 0x6153b8
mov edx, dword [edi]
cmp byte [edx + 0x9d], 0
jne 0x6153b8
mov eax, dword [ebp - 0x5c]
mov dword [esp + 4], 0x61e9a06d
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x68]
mov dword [esp + 8], eax
jmp 0x6153d2
test eax, eax
je 0x6153e0
mov eax, dword [ebp - 0x5c]
mov dword [esp + 4], 0x61e9a084
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x68]
mov dword [esp + 8], eax
mov dword [esp], edi
call fcn.00608748
mov eax, dword [ebp - 0x54]
inc dword [eax + 0x14]
cmp dword [ebp - 0x60], 0
je 0x615402
cmp dword [esi + 0x30], 1
mov ebx, dword [ebp - 0x54]
mov dword [ebp - 0x60], 1
sbb eax, eax
and ax, 0x3fff
sub ax, 0x4001
and word [ebx + 0x18], ax
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp + 8]
call fcn.005e7ed1
cmp dword [ebp - 0x60], 0
je 0x615668
mov eax, dword [esi + 0x30]
test eax, eax
je 0x6155f7
mov ecx, dword [ebp - 0x54]
mov edx, dword [eax + 4]
mov eax, dword [ebp + 8]
mov ebx, dword [ecx + 0x1c]
mov dword [ebp - 0x60], ebx
call fcn.005e7ed1
mov eax, dword [esi + 0x30]
mov edx, dword [eax + 8]
mov eax, dword [ebp + 8]
call fcn.005e7ed1
mov eax, dword [esi + 0x30]
mov edx, dword [eax + 0x1c]
mov eax, dword [ebp + 8]
call fcn.005e7ec0
mov ebx, dword [esi + 0x30]
mov ecx, dword [ebx]
test ecx, ecx
je 0x6154fd
cmp byte [ebx + 0xc], 0
jne 0x6154fd
mov eax, dword [ebp - 0x60]
mov eax, dword [eax + 0x48]
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x5c], 0
je 0x61574c
mov eax, dword [ebp - 0x5c]
mov edx, ecx
mov dword [ebp - 0x64], ecx
mov eax, dword [eax]
call fcn.005de405
test eax, eax
mov eax, dword [ebp - 0x5c]
je 0x61549d
mov eax, dword [eax + 0x18]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x5c], eax
jmp 0x615472
mov edx, dword [eax + 4]
mov eax, dword [edi]
xor ecx, ecx
call fcn.005f1c42
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0x5c]
xor ecx, ecx
mov edx, dword [eax + 8]
mov eax, dword [edi]
call fcn.005f1c42
mov dword [ebx + 8], eax
mov eax, dword [ebp - 0x5c]
xor ecx, ecx
mov edx, dword [eax + 0x10]
mov eax, dword [edi]
call fcn.005f1c27
mov dword [ebx + 0x10], eax
mov eax, dword [ebp - 0x5c]
xor ecx, ecx
mov edx, dword [eax + 0x14]
mov eax, dword [edi]
call fcn.005f1c27
mov dword [ebx + 0x14], eax
mov eax, dword [ebp - 0x5c]
mov al, byte [eax + 0xd]
mov byte [ebx + 0xd], al
mov eax, dword [ebp - 0x5c]
mov al, byte [eax + 0xe]
mov byte [ebx + 0xe], al
mov eax, dword [ebp - 0x5c]
mov al, byte [eax + 0xc]
mov byte [ebx + 0xc], al
mov eax, dword [ebp - 0x58]
test byte [eax + 6], 1
je 0x6155bd
cmp dword [ebx + 0x1c], 0
je 0x615525
mov dword [esp + 4], 0x61e9a0b1
mov dword [esp], edi
call fcn.00608748
jmp 0x6155bd
mov eax, dword [edi]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x58]
mov eax, dword [eax + 0x20]
cmp eax, 0x61ea7ca4
je 0x61553e
cmp eax, 0x61ea7cdc
jne 0x615568
mov edx, dword [ebx + 0x10]
mov eax, dword [ebp - 0x5c]
call fcn.005f0a66
mov edx, dword [ebx + 0x14]
mov eax, dword [ebp - 0x5c]
call fcn.005f0a66
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x10], 0
mov byte [ebx + 0xc], 0x4c
jmp 0x6155b5
cmp eax, 0x61ea7cd0
sete cl
cmp eax, 0x61ea7cc8
sete dl
or edx, ecx
cmp eax, 0x61ea7cb8
sete cl
or dl, cl
jne 0x61558d
cmp eax, 0x61ea7cac
jne 0x6155bd
mov edx, dword [ebx + 0x10]
mov eax, dword [ebp - 0x5c]
call fcn.005f0a66
mov edx, dword [ebx + 0x14]
mov eax, dword [ebp - 0x5c]
call fcn.005f0a66
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x10], 0
mov byte [ebx + 0xc], 0x56
mov byte [ebx + 0xd], 0x57
mov byte [ebx + 0xe], 0x52
mov eax, dword [ebp - 0x58]
mov dword [ebx + 0x20], eax
mov eax, dword [ebp - 0x60]
mov edx, dword [eax + 0x44]
test edx, edx
jne 0x6155de
mov edi, dword [ebp - 0x60]
mov eax, dword [esi + 0x30]
mov edx, dword [edi + 0x44]
mov dword [eax + 0x18], edx
mov dword [edi + 0x44], eax
jmp 0x6155ec
mov ecx, dword [esi + 0x30]
mov eax, edi
call fcn.0060cf99
test eax, eax
je 0x6155cd
mov eax, dword [ebp - 0x54]
or word [eax + 0x18], 0x4000
jmp 0x615668
mov ebx, dword [ebp - 0x54]
lea edi, [ebp - 0x44]
mov byte [esi], 0x9f
mov byte [esi + 0x26], 0
mov eax, dword [ebx + 4]
mov edx, dword [esi + 0x14]
mov dword [ebp - 0x34], 0x61e0b8cc
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x44], eax
lea eax, [ebp - 0x38]
mov dword [ebp - 0x3c], 0
call fcn.005e7ed1
cmp dword [ebp - 0x40], 0
jg 0x61564c
cmp dword [ebp - 0x3c], 0
je 0x61564c
inc byte [esi + 0x26]
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jne 0x615604
jmp 0x615660
mov eax, dword [ebp - 0x58]
mov eax, dword [eax + 4]
and ax, 0x1000
or eax, dword [ebx + 0x18]
or eax, 0x10
mov word [ebx + 0x18], ax
mov eax, dword [ebp - 0x54]
or word [eax + 0x18], 1
mov eax, 1
jmp 0x615765
test byte [esi + 5], 8
je 0x615733
mov eax, dword [ebp - 0x54]
mov ecx, 0x61e9a0f0
mov dx, word [eax + 0x18]
mov ebx, dword [eax + 0x10]
mov eax, edi
mov dword [esp], 0x26
call fcn.0060899c
mov edx, dword [esi + 0x14]
mov eax, dword [ebp + 8]
call fcn.005e7d0a
mov eax, dword [ebp - 0x54]
cmp ebx, dword [eax + 0x10]
je 0x615733
or dword [esi + 4], 0x20
or word [eax + 0x18], 0x40
jmp 0x615733
mov ebx, dword [esi + 0x10]
cmp byte [ebx], 0x3b
jne 0x6156ec
mov eax, dword [ebp + 8]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.006147b0
cmp eax, 2
je 0x614ea2
cmp byte [ebx], 0x9b
jne 0x6156ec
mov al, byte [esi]
mov byte [esi], 0xa3
mov byte [esi + 0x26], al
xor eax, eax
jmp 0x615765
mov eax, dword [edi]
cmp byte [eax + 0x49], 0
jne 0x615733
mov eax, dword [esi + 0xc]
call fcn.005e0005
cmp byte [esi], 0x30
mov ebx, eax
jne 0x615717
mov esi, dword [esi + 0x14]
mov eax, dword [esi + 4]
call fcn.005e0005
cmp ebx, eax
jne 0x615723
mov eax, dword [esi + 0x1c]
jmp 0x61571a
mov eax, dword [esi + 0x10]
call fcn.005e0005
cmp eax, ebx
je 0x615733
mov dword [esp + 4], 0x61e996be
mov dword [esp], edi
call fcn.00608748
mov eax, dword [edi + 0x24]
test eax, eax
jne 0x614ea2
mov edx, dword [edi]
cmp byte [edx + 0x49], 0
jne 0x614ea2
jmp 0x615765
mov dword [esp + 8], ecx
mov dword [esp + 4], 0x61e9a106
mov dword [esp], edi
call fcn.00608748
jmp 0x6155c3
add esp, 0xbc
pop ebx
pop esi
pop edi
pop ebp
ret