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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x384
mov eax, dword [0x100ef804]
push ebx
push esi
push edi
mov edi, ecx
push eax
mov dword [esp + 0x24], edi
call dword [0x100cf0b4]
mov ecx, dword [0x100ef804]
add eax, 1
push eax
push ecx
call dword [0x100cf0b0]
push 1
call dword [0x100cf114]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x10]
movzx esi, ax
mov edx, esi
and edx, 0x800000ff
mov word [esp + 0xc], ax
jns 0x486aab
dec edx
or edx, 0xffffff00
inc edx
sub eax, edx
add eax, 0x100
mov word [esp + 0xe], ax
movzx eax, ax
push eax
call fcn.0053b370
mov ecx, dword [ebp + 0x14]
add esp, 4
push esi
push ecx
push eax
mov dword [esp + 0x1c], eax
call dword [0x100ef7ec]
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
push 8
lea ecx, [esp + 0x248]
mov dword [esp + 0x248], edx
push ecx
lea edx, [esp + 0x26c]
push edx
mov dword [esp + 0x254], eax
call dword [0x100ef7ec]
push 0x100d1384
lea eax, [esp + 0x1d0]
push eax
call dword [0x100ef7e0]
mov eax, dword [esp + 0x264]
cmp ax, word [esp + 0x1cc]
jb 0x48701a
mov ecx, dword [esp + 0x268]
push 8
lea edx, [esp + 0x228]
mov dword [esp + 0x228], eax
push edx
lea eax, [esp + 0x23c]
push eax
mov dword [esp + 0x234], ecx
call dword [0x100ef7ec]
mov cx, word [esp + 0x1cc]
push 1
lea edx, [esp + 0x1d0]
push edx
lea eax, [esp + 0x23c]
push eax
mov word [esp + 0x240], cx
call dword [0x100ef7cc]
neg eax
sbb eax, eax
inc eax
je 0x48701a
mov edx, dword [0x100d1394]
mov ecx, dword [0x100d1390]
mov eax, dword [0x100d1398]
mov dword [esp + 0xd0], edx
mov edx, dword [esp + 0xc]
mov dword [esp + 0xcc], ecx
mov cx, word [0x100d139c]
and edx, 0xfffe
cmp edx, 0xc
mov dword [esp + 0xd4], eax
mov word [esp + 0xd8], cx
jb 0x48701a
mov eax, dword [esp + 0x10]
cmp word [eax + 0xa], 0x3a
jne 0x48701a
mov ax, word [eax + 8]
mov ecx, dword [edi + 0x74]
mov word [esp + 0xd4], ax
mov edx, dword [ecx]
mov edx, dword [edx + 0x40]
lea eax, [esp + 0x1c]
push eax
call edx
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x486d54
lea eax, [esp + 0xcc]
push eax
lea ecx, [esp + 0x308]
push ecx
call dword [0x100ef7e0]
mov edx, dword [esi]
mov edx, dword [edx + 0x14]
lea eax, [esp + 0x304]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, esi
call edx
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x486d54
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
test eax, eax
je 0x486d3c
lea eax, [esp + 0xcc]
lea esi, [esp + 0x2c4]
call fcn.00505540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov esi, dword [ebp + 8]
push ecx
push edx
call fcn.005055f0
lea eax, [esp + 0x2c4]
call fcn.00505660
mov ax, word [esp + 0xc]
cmp ax, 0xc
mov edx, 6
jne 0x486cb1
push 0x100cf494
lea eax, [esp + 0x84]
push eax
call dword [0x100ef7e0]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x80]
push ecx
push edx
jmp 0x486ce8
mov ecx, dword [esp + 0x10]
add ecx, 0xc
cmp word [ecx], 0x5c
jne 0x486cc6
add ecx, 2
mov edx, 7
shr ax, 1
sub ax, dx
add ax, ax
mov word [esp + 0x80], ax
mov word [esp + 0x82], ax
mov eax, dword [esp + 0x80]
push ecx
push eax
mov esi, dword [ebp + 0xc]
call fcn.005055f0
lea esi, [esp + 0x18]
call fcn.004c5d90
lea esi, [esp + 0x1c]
call fcn.004c5d90
lea eax, [esp + 0xc]
call fcn.00505660
mov ecx, dword [esp + 0x24]
push ecx
call dword [0x100cf114]
mov edx, dword [0x100ef804]
push edx
call dword [0x100cf0b4]
sub eax, 1
push eax
mov eax, dword [0x100ef804]
push eax
call dword [0x100cf0b0]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [esp + 0x18]
test eax, eax
je 0x486d54
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x18], 0
cmp dword [0x100ef56c], 0
je 0x487002
mov eax, dword [esp + 0x10]
movzx ecx, word [eax + 8]
mov edx, dword [0x100ef5a0]
movzx esi, word [edx + ecx*2]
sub esi, 0x41
cmp esi, 0x20
jae 0x487002
mov ebx, dword [0x100ef48c]
push 0
push 0x24
lea eax, [esp + 0x374]
push eax
push 0x17
add ebx, 0xd48
call dword [0x100cf22c]
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x24]
mov ecx, ebx
call eax
call eax
test eax, eax
jne 0x487002
mov al, byte [esp + esi + 0x370]
test al, al
je 0x486dca
cmp al, 1
je 0x486dca
cmp al, 4
jne 0x487002
lea ecx, [esp + 0x2cc]
push ecx
lea edx, [esp + 0x1bc]
lea ebx, [edi + 0xa0]
push edx
mov eax, ebx
mov dword [esp + 0x1c0], esi
call fcn.004a4ee0
test eax, eax
je 0x486e50
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
push ecx
push edx
mov word [eax], 0
call fcn.005055f0
lea esi, [esp + 0x1c]
call fcn.004c5d90
lea eax, [esp + 0xc]
call fcn.00505660
mov eax, dword [esp + 0x24]
push eax
call dword [0x100cf114]
mov ecx, dword [0x100ef804]
push ecx
call dword [0x100cf0b4]
mov edx, dword [0x100ef804]
sub eax, 1
push eax
push edx
call dword [0x100cf0b0]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
xor eax, eax
mov dword [esp + 0x7c], 1
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
mov dword [esp + 0x78], esi
mov dword [esp + 0x17c], esi
mov edi, dword [esp + 0x7c]
lea esi, [esp + 0xb0]
call fcn.00475b90
lea eax, [esp + 0x78]
push eax
mov ecx, eax
push ecx
mov eax, ebx
call fcn.004a4d00
mov esi, dword [esp + 0xb0]
lea edx, [esp + 0x7c]
push edx
push esi
lea eax, [esp + 0xdc]
push eax
call dword [0x100ef56c]
lea ecx, [esp + 0x17c]
mov edi, eax
push ecx
mov eax, ebx
call fcn.004a3d50
cmp edi, 0xea
je 0x486e73
xor eax, eax
cmp edi, eax
jne 0x486ff2
mov ebx, 0x100d13a0
lea edi, [esp + 0xc0]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
call fcn.00475be0
add esi, 2
push esi
mov esi, edi
call fcn.004a2150
mov edx, dword [esp + 0xc0]
push edx
lea eax, [esp + 0x240]
push eax
call dword [0x100ef7e0]
mov ecx, dword [esp + 0x240]
mov edx, dword [esp + 0x23c]
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push ecx
mov ecx, dword [esp + 0x24]
push edx
push esi
push eax
call fcn.00486a50
movzx eax, word [esi]
test ax, ax
jbe 0x486f5e
mov edx, dword [esi + 4]
shr ax, 1
sub ax, 1
movzx ecx, ax
cmp word [edx + ecx*2], 0x5c
je 0x486f5e
mov eax, 0x100cf980
call fcn.00505790
mov eax, dword [esp + 0x10]
add eax, 0xe
mov dword [esp + 0x194], eax
mov ax, word [esp + 0xc]
shr ax, 1
sub ax, 7
add ax, ax
lea ebx, [esp + 0x190]
mov word [esp + 0x190], ax
mov word [esp + 0x192], ax
call fcn.005056b0
lea ecx, [esp + 0xc0]
call fcn.004729b0
lea esi, [esp + 0xb0]
call fcn.00472330
lea esi, [esp + 0x1c]
call fcn.004c5d90
lea eax, [esp + 0xc]
call fcn.00505660
mov ecx, dword [esp + 0x24]
push ecx
call dword [0x100cf114]
mov edx, dword [0x100ef804]
push edx
call dword [0x100cf0b4]
sub eax, 1
push eax
mov eax, dword [0x100ef804]
push eax
call dword [0x100cf0b0]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
lea esi, [esp + 0xb0]
call fcn.00472330
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x48701a
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x1c], 0
lea esi, [edi + 0x7c]
mov edi, esi
lea ebx, [esp + 0x17]
mov dword [esp + 0x34], esi
mov dword [esp + 0xb8], edi
call fcn.004761f0
test al, al
jne 0x48703b
xor ebx, ebx
jmp 0x487043
add dword [edi + 0x10], 1
mov al, 1
xor ebx, ebx
mov byte [esp + 0xbc], al
mov eax, esi
call fcn.00509070
cmp eax, ebx
mov dword [esp + 0x44], eax
je 0x487901
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0x44]
call fcn.004a4c70
mov esi, eax
mov ax, word [esi]
mov word [esp + 0x3c], ax
movzx eax, word [esi]
movzx ecx, ax
and ecx, 0x800000ff
jns 0x48708a
dec ecx
or ecx, 0xffffff00
inc ecx
sub eax, ecx
add eax, 0x100
mov word [esp + 0x3e], ax
movzx edx, ax
mov eax, 0x100ef4b8
mov dword [esp + 0x2b0], ebx
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x2b0]
mov dword [esp + 0x48], edx
mov dword [esp + 0x2b8], ebx
mov ecx, dword [esp + 0x2b8]
mov dword [esp + 0xe8], eax
mov eax, 0x100ef4b4
lea edx, [esp + 0xdc]
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], 0xffffffff
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xf4], edx
call fcn.00535fe0
call dword [0x100cf08c]
mov edi, eax
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax]
cmp edi, ecx
je 0x487150
mov edx, dword [esp + 0xe4]
mov eax, dword [edx]
test eax, eax
jne 0x487440
mov ecx, dword [esp + 0xe4]
push ebx
push edi
push ecx
call dword [0x100cf090]
test eax, eax
sete al
cmp al, bl
je 0x487440
mov edx, dword [esp + 0xec]
mov dword [edx], ebx
mov eax, dword [esp + 0xec]
add dword [eax], 1
mov al, 1
mov ecx, dword [0x100ef808]
mov byte [esp + 0xf8], al
mov eax, dword [esp + 0x48]
push eax
push 1
push ecx
call dword [0x100cf14c]
cmp byte [esp + 0xf8], bl
mov dword [esp + 0x48], eax
je 0x4871ca
mov eax, dword [esp + 0xf4]
mov ecx, dword [eax + 0x10]
add dword [ecx], 0xffffffff
mov edx, dword [eax + 0x10]
mov edi, eax
add eax, 0x10
cmp dword [edx], ebx
jne 0x4871ca
mov eax, edx
mov dword [eax], ebx
mov ecx, dword [edi + 8]
push ebx
push ecx
call dword [0x100cf084]
mov edx, dword [edi + 0xc]
test edx, edx
lea eax, [edi + 0xc]
jle 0x4871ca
push eax
call dword [0x100cf080]
mov eax, dword [edi + 0x14]
push ebx
push 1
push eax
call dword [0x100cf088]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x40], eax
movzx ecx, word [esi]
mov edx, dword [esi + 4]
push ecx
push edx
push eax
call dword [0x100ef7ec]
push 1
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x44]
push ecx
call dword [0x100ef7cc]
test eax, eax
je 0x4879bd
mov ax, word [esp + 0x3c]
movzx edx, ax
and edx, 0x800000ff
mov word [esp + 0x2c], ax
jns 0x487218
dec edx
or edx, 0xffffff00
inc edx
mov eax, dword [esp + 0x3c]
sub eax, edx
add eax, 0x100
mov word [esp + 0x2e], ax
movzx esi, ax
mov eax, 0x100ef4b8
mov dword [esp + 0x2f8], ebx
mov ecx, 0x100ef4b4
mov dword [esp + 0x300], ebx
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x2f8]
mov dword [esp + 0x10c], ecx
mov ecx, dword [esp + 0x300]
lea edx, [esp + 0xfc]
mov dword [esp + 0xfc], ebx
mov dword [esp + 0x100], 0xffffffff
mov dword [esp + 0x108], eax
mov dword [esp + 0x110], ecx
mov dword [esp + 0x114], edx
call fcn.00535fe0
call dword [0x100cf08c]
mov edi, eax
mov eax, dword [esp + 0x104]
mov ecx, dword [eax]
cmp edi, ecx
je 0x4872de
mov edx, dword [esp + 0x104]
mov eax, dword [edx]
test eax, eax
jne 0x48745a
mov ecx, dword [esp + 0x104]
push ebx
push edi
push ecx
call dword [0x100cf090]
test eax, eax
sete al
cmp al, bl
je 0x48745a
mov edx, dword [esp + 0x10c]
mov dword [edx], ebx
mov eax, dword [esp + 0x10c]
add dword [eax], 1
mov al, 1
push esi
mov byte [esp + 0x11c], al
mov eax, dword [0x100ef808]
push 1
push eax
call dword [0x100cf14c]
cmp byte [esp + 0x118], bl
mov esi, eax
je 0x487351
mov eax, dword [esp + 0x114]
mov ecx, dword [eax + 0x10]
add dword [ecx], 0xffffffff
mov ecx, dword [eax + 0x10]
mov edi, eax
add eax, 0x10
cmp dword [ecx], ebx
jne 0x487351
mov edx, ecx
mov dword [edx], ebx
mov eax, dword [edi + 8]
push ebx
push eax
call dword [0x100cf084]
mov ecx, dword [edi + 0xc]
test ecx, ecx
lea eax, [edi + 0xc]
jle 0x487351
push eax
call dword [0x100cf080]
mov edx, dword [edi + 0x14]
push ebx
push 1
push edx
call dword [0x100cf088]
movzx eax, word [esp + 0x3c]
mov ecx, dword [esp + 0x40]
push eax
push ecx
push esi
mov dword [esp + 0x3c], esi
call dword [0x100ef7ec]
push 0x100cf980
lea edx, [esp + 0x1c0]
push edx
call dword [0x100ef7e0]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1bc]
add ecx, eax
movzx esi, cx
cmp si, word [esp + 0x2e]
mov dword [esp + 0x38], esi
jbe 0x4875ef
movzx edx, si
and edx, 0x800000ff
jns 0x4873ac
dec edx
or edx, 0xffffff00
inc edx
mov eax, esi
sub eax, edx
add eax, 0x100
mov word [esp + 0x2e], ax
movzx esi, ax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x48], eax
cmp eax, ebx
mov ecx, 0x100ef4b4
mov eax, 0x100ef4b8
je 0x487500
mov dword [esp + 0x288], ebx
mov dword [esp + 0x290], ebx
lea edx, [esp + 0x204]
mov dword [esp + 0x204], ebx
mov dword [esp + 0x20c], eax
mov eax, dword [esp + 0x288]
mov dword [esp + 0x214], ecx
mov ecx, dword [esp + 0x290]
lea ebx, [esp + 0x66]
mov edi, edx
mov dword [esp + 0x208], 0xffffffff
mov dword [esp + 0x210], eax
mov dword [esp + 0x218], ecx
mov dword [esp + 0x21c], edx
call fcn.00535220
test al, al
jne 0x487474
jmp 0x487480
push edi
lea eax, [esp + 0xe0]
call fcn.00535290
test al, al
jne 0x487150
jmp 0x48715c
push edi
lea eax, [esp + 0x100]
call fcn.00535290
test al, al
jne 0x4872de
jmp 0x4872ea
mov eax, dword [esp + 0x214]
add dword [eax], 1
mov al, 1
mov ecx, dword [0x100ef808]
push esi
mov byte [esp + 0x224], al
mov eax, dword [esp + 0x4c]
push eax
push 1
push ecx
call dword [0x100cf1dc]
cmp byte [esp + 0x220], 0
mov esi, eax
je 0x4875e3
mov eax, dword [esp + 0x21c]
mov ecx, dword [eax + 0x10]
add dword [ecx], 0xffffffff
mov edx, dword [eax + 0x10]
mov edi, eax
add eax, 0x10
cmp dword [edx], 0
jne 0x4875e3
mov eax, edx
mov dword [eax], 0
mov ecx, dword [edi + 8]
push 0
push ecx
call dword [0x100cf084]
mov edx, dword [edi + 0xc]
test edx, edx
lea eax, [edi + 0xc]
jle 0x4875e3
push eax
call dword [0x100cf080]
mov eax, dword [edi + 0x14]
push 0
push 1
push eax
jmp 0x4875dd
mov dword [esp + 0x318], ebx
mov edx, dword [esp + 0x318]
mov dword [esp + 0x320], ebx
mov dword [esp + 0x1f4], ecx
lea ecx, [esp + 0x1e4]
mov dword [esp + 0x1e4], ebx
mov dword [esp + 0x1ec], eax
mov eax, dword [esp + 0x320]
lea ebx, [esp + 0x67]
mov edi, ecx
mov dword [esp + 0x1e8], 0xffffffff
mov dword [esp + 0x1f0], edx
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1fc], ecx
call fcn.00535220
test al, al
je 0x487573
mov eax, dword [esp + 0x1f4]
add dword [eax], 1
mov al, 1
mov edx, dword [0x100ef808]
push esi
push 1
push edx
mov byte [esp + 0x20c], al
call dword [0x100cf14c]
cmp byte [esp + 0x200], 0
mov esi, eax
je 0x4875e3
mov eax, dword [esp + 0x1fc]
mov ecx, dword [eax + 0x10]
add dword [ecx], 0xffffffff
mov ecx, dword [eax + 0x10]
mov edi, eax
add eax, 0x10
cmp dword [ecx], 0
jne 0x4875e3
mov edx, ecx
mov dword [edx], 0
mov eax, dword [edi + 8]
push 0
push eax
call dword [0x100cf084]
mov ecx, dword [edi + 0xc]
test ecx, ecx
lea eax, [edi + 0xc]
jle 0x4875e3
push eax
call dword [0x100cf080]
mov edx, dword [edi + 0x14]
push 0
push 1
push edx
call dword [0x100cf088]
mov eax, esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x30], eax
xor ebx, ebx
movzx eax, word [esp + 0x1bc]
movzx edx, word [esp + 0x2c]
mov ecx, dword [esp + 0x1c0]
add edx, dword [esp + 0x30]
push eax
push ecx
push edx
call dword [0x100ef7ec]
push 8
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x264]
push ecx
mov word [esp + 0x38], si
call dword [0x100ef7ec]
mov eax, dword [esp + 0x25c]
cmp ax, word [esp + 0x2c]
jb 0x487692
mov edx, dword [esp + 0x260]
mov dword [esp + 0x22c], eax
push 8
lea eax, [esp + 0x230]
push eax
lea ecx, [esp + 0xa8]
push ecx
mov dword [esp + 0x23c], edx
call dword [0x100ef7ec]
mov dx, word [esp + 0x2c]
push 1
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0xa8]
push ecx
mov word [esp + 0xac], dx
call dword [0x100ef7cc]
neg eax
sbb eax, eax
inc eax
jne 0x4879ef
mov eax, dword [esp + 0x30]
cmp eax, ebx
mov esi, eax
je 0x4877c5
mov eax, 0x100ef4b8
mov dword [esp + 0x2d4], ebx
mov edx, dword [esp + 0x2d4]
mov ecx, 0x100ef4b4
mov dword [esp + 0x2dc], ebx
mov dword [esp + 0x124], eax
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x12c], ecx
lea ecx, [esp + 0x11c]
mov dword [esp + 0x11c], ebx
mov dword [esp + 0x120], 0xffffffff
mov dword [esp + 0x128], edx
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], ecx
call fcn.00535fe0
call dword [0x100cf08c]
mov edx, dword [esp + 0x124]
mov edi, eax
mov eax, dword [edx]
cmp edi, eax
je 0x487753
mov ecx, dword [esp + 0x124]
mov edx, dword [ecx]
test edx, edx
jne 0x487989
mov eax, dword [esp + 0x124]
push ebx
push edi
push eax
call dword [0x100cf090]
test eax, eax
sete al
cmp al, bl
je 0x487989
mov ecx, dword [esp + 0x12c]
mov dword [ecx], ebx
mov eax, dword [esp + 0x12c]
add dword [eax], 1
mov al, 1
mov edx, dword [0x100ef808]
push esi
push 1
push edx
mov byte [esp + 0x144], al
call dword [0x100cf260]
cmp byte [esp + 0x138], bl
je 0x4877c5
mov eax, dword [esp + 0x134]
mov ecx, dword [eax + 0x10]
add dword [ecx], 0xffffffff
mov ecx, dword [eax + 0x10]
mov edi, eax
add eax, 0x10
cmp dword [ecx], ebx
jne 0x4877c5
mov edx, ecx
mov dword [edx], ebx
mov eax, dword [edi + 8]
push ebx
push eax
call dword [0x100cf084]
mov ecx, dword [edi + 0xc]
test ecx, ecx
lea eax, [edi + 0xc]
jle 0x4877c5
push eax
call dword [0x100cf080]
mov edx, dword [edi + 0x14]
push ebx
push 1
push edx
call dword [0x100cf088]
mov eax, dword [esp + 0x40]
cmp eax, ebx
mov esi, eax
je 0x4878f7
mov eax, 0x100ef4b8
mov dword [esp + 0x184], ebx
mov ecx, 0x100ef4b4
mov dword [esp + 0x18c], ebx
mov dword [esp + 0x164], eax
mov eax, dword [esp + 0x184]
mov dword [esp + 0x16c], ecx
mov ecx, dword [esp + 0x18c]
lea edx, [esp + 0x15c]
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x160], 0xffffffff
mov dword [esp + 0x168], eax
mov dword [esp + 0x170], ecx
mov dword [esp + 0x174], edx
call fcn.00535fe0
call dword [0x100cf08c]
mov edi, eax
mov eax, dword [esp + 0x164]
mov ecx, dword [eax]
cmp edi, ecx
je 0x487886
mov edx, dword [esp + 0x164]
mov eax, dword [edx]
test eax, eax
jne 0x4879a3
mov ecx, dword [esp + 0x164]
push ebx
push edi
push ecx
call dword [0x100cf090]
test eax, eax
sete al
cmp al, bl
je 0x4879a3
mov edx, dword [esp + 0x16c]
mov dword [edx], ebx
mov eax, dword [esp + 0x16c]
add dword [eax], 1
mov al, 1
push esi
mov byte [esp + 0x17c], al
mov eax, dword [0x100ef808]
push 1
push eax
call dword [0x100cf260]
cmp byte [esp + 0x178], bl
je 0x4878f7
mov eax, dword [esp + 0x174]
mov ecx, dword [eax + 0x10]
add dword [ecx], 0xffffffff
mov ecx, dword [eax + 0x10]
mov edi, eax
add eax, 0x10
cmp dword [ecx], ebx
jne 0x4878f7
mov edx, ecx
mov dword [edx], ebx
mov eax, dword [edi + 8]
push ebx
push eax
call dword [0x100cf084]
mov ecx, dword [edi + 0xc]
test ecx, ecx
lea eax, [edi + 0xc]
jle 0x4878f7
push eax
call dword [0x100cf080]
mov edx, dword [edi + 0x14]
push ebx
push 1
push edx
call dword [0x100cf088]
cmp dword [esp + 0x44], ebx
jne 0x48705d
lea eax, [esp + 0xb8]
call fcn.004761a0
push 0x100d13b0
lea edx, [esp + 0x258]
push edx
call dword [0x100ef7e0]
push 8
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x2a4]
push ecx
call dword [0x100ef7ec]
lea esi, [esp + 0x254]
lea eax, [esp + 0x29c]
call fcn.005053e0
test eax, eax
mov eax, dword [esp + 0x10]
je 0x487ce2
movzx edx, word [esp + 0x254]
movzx ecx, word [esp + 0xc]
shr edx, 1
shr ecx, 1
lea esi, [eax + edx*2]
lea eax, [eax + ecx*2]
cmp esi, eax
je 0x487ce2
cmp word [esi], 0x5c
je 0x487a9c
add esi, 2
cmp esi, eax
jne 0x487973
jmp 0x487ce2
push edi
lea eax, [esp + 0x120]
call fcn.00535290
test al, al
jne 0x487753
jmp 0x48775f
push edi
lea eax, [esp + 0x160]
call fcn.00535290
test al, al
jne 0x487886
jmp 0x487892
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov esi, dword [ebp + 8]
push eax
push ecx
call fcn.005055f0
mov edx, dword [ebp + 0xc]
lea eax, [esp + 0x3c]
mov word [edx], bx
call fcn.00505660
lea eax, [esp + 0xb8]
call fcn.004761a0
jmp 0x486e15
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov esi, dword [ebp + 8]
push eax
push ecx
call fcn.005055f0
mov cx, word [esp + 0x2c]
mov eax, dword [esp + 0x10]
mov esi, dword [ebp + 0xc]
movzx edx, cx
shr edx, 1
lea edx, [eax + edx*2]
mov ax, word [esp + 0xc]
shr cx, 1
shr ax, 1
sub ax, cx
add ax, ax
mov word [esp + 0xa0], ax
mov word [esp + 0xa2], ax
mov ecx, dword [esp + 0xa0]
push edx
push ecx
call fcn.005055f0
lea eax, [esp + 0x2c]
call fcn.00505660
lea eax, [esp + 0x3c]
call fcn.00505660
lea eax, [esp + 0xb8]
call fcn.004761a0
lea eax, [esp + 0xc]
call fcn.00505660
mov edx, dword [esp + 0x24]
push edx
call dword [0x100cf114]
mov eax, dword [0x100ef804]
push eax
call dword [0x100cf0b4]
mov ecx, dword [0x100ef804]
sub eax, 1
push eax
push ecx
call dword [0x100cf0b0]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
add esi, 2
cmp esi, eax
je 0x487ce2
jmp 0x487ab0
movzx ecx, word [esi]
cmp cx, 0x5c
je 0x487ce2
cmp cx, 0x3a
je 0x487acf
add esi, 2
cmp esi, eax
jne 0x487ab0
jmp 0x487ce2
cmp esi, eax
je 0x487ce2
cmp word [esi], 0x5c
je 0x487ae9
add esi, 2
cmp esi, eax
jne 0x487ad7
jmp 0x487ce2
push 0x100d13a0
lea edx, [esp + 0x1a4]
push edx
call dword [0x100ef7e0]
mov eax, dword [esp + 0x1a0]
movzx ecx, ax
and ecx, 0x800000ff
mov word [esp + 0x68], ax
jns 0x487b1b
dec ecx
or ecx, 0xffffff00
inc ecx
sub eax, ecx
add eax, 0x100
mov word [esp + 0x6a], ax
movzx edx, ax
mov eax, 0x100ef4b8
mov dword [esp + 0x184], ebx
mov ecx, 0x100ef4b4
mov dword [esp + 0x38], edx
mov dword [esp + 0x18c], ebx
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0x184]
mov dword [esp + 0x14c], ecx
mov ecx, dword [esp + 0x18c]
lea edx, [esp + 0x13c]
mov dword [esp + 0x13c], ebx
mov dword [esp + 0x140], 0xffffffff
mov dword [esp + 0x148], eax
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], edx
call fcn.00535fe0
call dword [0x100cf08c]
mov edi, eax
mov eax, dword [esp + 0x144]
mov ecx, dword [eax]
cmp edi, ecx
je 0x487be1
mov edx, dword [esp + 0x144]
mov eax, dword [edx]
test eax, eax
jne 0x487cc1
mov ecx, dword [esp + 0x144]
push ebx
push edi
push ecx
call dword [0x100cf090]
test eax, eax
sete al
cmp al, bl
je 0x487cc1
mov edx, dword [esp + 0x14c]
mov dword [edx], ebx
mov eax, dword [esp + 0x14c]
add dword [eax], 1
mov al, 1
mov ecx, dword [0x100ef808]
mov byte [esp + 0x158], al
mov eax, dword [esp + 0x38]
push eax
push 1
push ecx
call dword [0x100cf14c]
cmp byte [esp + 0x158], bl
mov dword [esp + 0x38], eax
je 0x487c5b
mov eax, dword [esp + 0x154]
mov ecx, dword [eax + 0x10]
add dword [ecx], 0xffffffff
mov edx, dword [eax + 0x10]
mov edi, eax
add eax, 0x10
cmp dword [edx], ebx
jne 0x487c5b
mov eax, edx
mov dword [eax], ebx
mov ecx, dword [edi + 8]
push ebx
push ecx
call dword [0x100cf084]
mov edx, dword [edi + 0xc]
test edx, edx
lea eax, [edi + 0xc]
jle 0x487c5b
push eax
call dword [0x100cf080]
mov eax, dword [edi + 0x14]
push ebx
push 1
push eax
call dword [0x100cf088]
movzx ecx, word [esp + 0x1a0]
mov edx, dword [esp + 0x1a4]
mov eax, dword [esp + 0x38]
push ecx
push edx
push eax
mov dword [esp + 0x78], eax
call dword [0x100ef7ec]
push esi
lea eax, [esp + 0x328]
push eax
call dword [0x100ef7e0]
lea ebx, [esp + 0x324]
lea esi, [esp + 0x68]
call fcn.005056b0
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
mov eax, dword [ebp + 0xc]
push ecx
mov ecx, dword [ebp + 8]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x30]
call fcn.00486a50
mov eax, esi
call fcn.00505660
jmp 0x487a62
push edi
lea eax, [esp + 0x140]
call fcn.00535290
test al, al
jne 0x487be1
jmp 0x487bed
xor ebx, ebx
mov edx, dword [esp + 0x10]
mov ax, word [esp + 0xc]
xor edi, edi
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], ebx
lea ecx, [edi + 2]
jmp 0x487d00
mov edx, dword [esp + 0x18]
cmp word [edx], 0x5c
je 0x487d16
movzx edx, di
movzx eax, ax
add edx, edx
cmp edx, eax
jne 0x487d63
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x10]
mov word [esp + 0x1c4], ax
mov word [esp + 0x1c6], ax
lea esi, [esp + 0x58]
lea eax, [esp + 0x1c4]
mov dword [esp + 0x5c], ebx
mov word [esp + 0x58], bx
mov word [esp + 0x5a], bx
mov dword [esp + 0x1c8], ecx
call fcn.004ab490
test eax, eax
je 0x487d88
mov eax, esi
call fcn.00505660
mov ecx, 2
mov ax, word [esp + 0xc]
movzx edx, di
movzx esi, ax
add edx, edx
cmp edx, esi
je 0x487f42
add dword [esp + 0x20], ecx
add edi, 1
add dword [esp + 0x18], ecx
jmp 0x487d00
mov ax, word [esp + 0x58]
mov word [esp + 0x70], ax
movzx eax, ax
mov ecx, eax
and ecx, 0x800000ff
jns 0x487da7
dec ecx
or ecx, 0xffffff00
inc ecx
mov eax, dword [esp + 0x58]
sub eax, ecx
add eax, 0x100
movzx edx, ax
push edx
mov word [esp + 0x76], ax
call fcn.0053b370
movzx ecx, word [esp + 0x5c]
mov edx, dword [esp + 0x60]
add esp, 4
push ecx
push edx
push eax
mov dword [esp + 0x80], eax
call dword [0x100ef7ec]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x1b4], eax
mov ax, word [esp + 0xc]
shr ax, 1
sub ax, di
add ax, ax
lea ebx, [esp + 0x1b0]
lea esi, [esp + 0x70]
mov word [esp + 0x1b0], ax
mov word [esp + 0x1b2], ax
call fcn.005056b0
mov edi, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
push edi
push ecx
lea esi, [esp + 0x14]
call fcn.005055f0
test edi, edi
je 0x487eab
push 0x100ef4b8
mov edx, 0x100ef4b4
lea eax, [esp + 0x330]
call fcn.00532c00
mov edx, dword [0x100ef808]
push edi
push 1
push edx
call dword [0x100cf260]
cmp byte [esp + 0x348], 0
je 0x487eab
mov esi, dword [esp + 0x344]
mov ecx, dword [esi + 0x10]
add dword [ecx], 0xffffffff
mov ecx, dword [esi + 0x10]
cmp dword [ecx], 0
lea eax, [esi + 0x10]
jne 0x487eab
mov edx, ecx
mov dword [edx], 0
mov eax, dword [esi + 8]
push 0
push eax
call dword [0x100cf084]
mov ecx, dword [esi + 0xc]
test ecx, ecx
lea eax, [esi + 0xc]
jle 0x487eab
push eax
call dword [0x100cf080]
mov edx, dword [esi + 0x14]
push 0
push 1
push edx
call dword [0x100cf088]
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x487ce0
push 0x100ef4b8
mov edx, 0x100ef4b4
lea eax, [esp + 0x350]
call fcn.00532c00
mov eax, dword [0x100ef808]
push esi
push 1
push eax
call dword [0x100cf260]
cmp byte [esp + 0x368], 0
je 0x487ce0
mov esi, dword [esp + 0x364]
mov ecx, dword [esi + 0x10]
add dword [ecx], 0xffffffff
mov ecx, dword [esi + 0x10]
cmp dword [ecx], 0
lea eax, [esi + 0x10]
jne 0x487ce0
mov edx, ecx
mov dword [edx], 0
mov eax, dword [esi + 8]
push 0
push eax
call dword [0x100cf084]
mov ecx, dword [esi + 0xc]
test ecx, ecx
lea eax, [esi + 0xc]
jle 0x487ce0
push eax
call dword [0x100cf080]
mov edx, dword [esi + 0x14]
push 0
push 1
push edx
call dword [0x100cf088]
jmp 0x487ce0
mov edi, dword [esp + 0x34]
lea ebx, [esp + 0x65]
call fcn.004761f0
test al, al
jne 0x487f5b
xor ebx, ebx
mov byte [esp + 0x17], bl
jmp 0x487f66
add dword [edi + 0x10], 1
mov byte [esp + 0x17], 1
xor ebx, ebx
mov eax, edi
call fcn.00509070
cmp eax, ebx
mov dword [esp + 0x4c], eax
je 0x488040
lea esp, [esp]
lea eax, [esp + 0x4c]
mov ecx, edi
call fcn.004a4c70
mov esi, eax
lea edi, [esp + 0x50]
call fcn.005055a0
push 1
lea eax, [esp + 0x10]
push eax
mov ecx, edi
push ecx
call dword [0x100ef7cc]
test eax, eax
je 0x4880dc
mov esi, edi
lea edi, [esp + 0x98]
call fcn.005055a0
push 0x100cf980
lea edx, [esp + 0x310]
push edx
call dword [0x100ef7e0]
lea ebx, [esp + 0x30c]
mov esi, edi
call fcn.005056b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
push 8
lea edx, [esp + 0xac]
mov dword [esp + 0xac], eax
push edx
lea eax, [esp + 0x2f0]
push eax
mov dword [esp + 0xb8], ecx
call dword [0x100ef7ec]
lea eax, [esp + 0x2e8]
call fcn.005053e0
test eax, eax
jne 0x488153
mov eax, edi
call fcn.00505660
lea eax, [esp + 0x50]
call fcn.00505660
cmp dword [esp + 0x4c], 0
mov edi, dword [esp + 0x34]
jne 0x487f80
xor ebx, ebx
cmp byte [esp + 0x17], 0
je 0x488079
add dword [edi + 0x10], 0xffffffff
jne 0x488079
push ebx
lea ecx, [edi + 8]
push ecx
mov dword [edi + 0x10], ebx
call dword [0x100cf084]
mov edx, dword [edi + 0xc]
test edx, edx
lea eax, [edi + 0xc]
jle 0x488079
push eax
call dword [0x100cf080]
mov eax, dword [edi + 0x14]
push ebx
push 1
push eax
call dword [0x100cf088]
mov dx, word [esp + 0xc]
shr dx, 1
movzx eax, dx
lea ecx, [esp + 0xc]
mov dword [esp + 0x274], ecx
movzx ecx, ax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
movzx edx, ax
lea ecx, [ecx + edx*2]
mov dword [esp + 0x26c], 0x18
mov dword [esp + 0x270], ebx
mov dword [esp + 0x278], 0x40
mov dword [esp + 0x27c], ebx
mov dword [esp + 0x280], ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], ebx
jmp 0x4881c4
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov esi, dword [ebp + 8]
push ecx
push edx
call fcn.005055f0
mov eax, dword [ebp + 0xc]
mov word [eax], 0
lea eax, [esp + 0x50]
call fcn.00505660
cmp byte [esp + 0x17], 0
je 0x486d02
mov esi, dword [esp + 0x34]
add dword [esi + 0x10], 0xffffffff
jne 0x486d02
push 0
lea ecx, [esi + 8]
push ecx
mov dword [esi + 0x10], 0
call dword [0x100cf084]
mov edx, dword [esi + 0xc]
test edx, edx
lea eax, [esi + 0xc]
jle 0x486d02
push eax
call dword [0x100cf080]
mov eax, dword [esi + 0x14]
push 0
push 1
push eax
call dword [0x100cf088]
jmp 0x486d02
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov esi, dword [ebp + 8]
push ecx
push edx
call fcn.005055f0
mov cx, word [esp + 0x98]
mov edx, dword [esp + 0x10]
mov esi, dword [ebp + 0xc]
movzx eax, cx
shr eax, 1
lea edx, [edx + eax*2]
mov ax, word [esp + 0xc]
shr ax, 1
shr cx, 1
sub ax, cx
add ax, ax
mov word [esp + 0xa8], ax
mov word [esp + 0xaa], ax
mov eax, dword [esp + 0xa8]
push edx
push eax
call fcn.005055f0
lea eax, [esp + 0x98]
call fcn.00505660
jmp 0x4880f6
mov eax, dword [esp + 0x18]
cmp word [ecx], 0x5c
je 0x4881d5
cmp word [esp + 0x1c], ax
jne 0x48833a
mov edx, dword [esp + 0x1c]
mov esi, dword [0x100ef48c]
push 8
lea ecx, [esp + 0x298]
lea eax, [edx + edx]
push ecx
mov word [esp + 0x14], ax
mov dword [esp + 0x68], ebx
add esi, 0x160
call dword [0x100ef7e8]
push 0x21
push 3
lea edx, [esp + 0x29c]
push edx
mov edx, dword [esi]
lea eax, [esp + 0x278]
push eax
mov eax, dword [edx + 0x24]
push 0x100000
lea ecx, [esp + 0x74]
push ecx
mov ecx, esi
call eax
call eax
test eax, eax
jne 0x48830c
mov esi, 0x400
xor edi, edi
cmp esi, ebx
jbe 0x488248
push esi
call fcn.0053b370
add esp, 4
mov edi, eax
mov ecx, dword [0x100ef48c]
mov eax, dword [esp + 0x60]
lea edx, [esp + 0x2f0]
push edx
mov edx, dword [ecx + 0xb68]
push esi
push edi
add ecx, 0xb68
push 1
push eax
mov eax, dword [edx + 0x24]
call eax
call eax
cmp eax, 0xc0000004
je 0x488287
cmp eax, 0x80000005
je 0x488287
cmp eax, 0xc0000023
jne 0x48829a
add esi, 0x100
cmp edi, ebx
je 0x488237
mov eax, edi
call fcn.00472510
jmp 0x488237
cmp eax, ebx
jne 0x488301
mov ecx, dword [edi + 4]
mov edx, dword [edi]
push ecx
push edx
lea esi, [esp + 0x14]
call fcn.005055f0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x19c], eax
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x1c]
lea ebx, [esp + 0x198]
add eax, eax
mov word [esp + 0x198], ax
mov word [esp + 0x19a], ax
call fcn.005056b0
mov cx, word [esp + 0xc]
shr cx, 1
movzx edx, cx
mov eax, edi
mov dword [esp + 0x18], edx
mov dword [esp + 0x28], 1
call fcn.00472510
xor ebx, ebx
jmp 0x48830c
cmp edi, ebx
je 0x48830c
mov eax, edi
call fcn.00472510
mov eax, dword [esp + 0x60]
cmp eax, ebx
je 0x48833a
mov ecx, dword [0x100ef48c]
cmp ecx, ebx
push eax
je 0x488334
mov eax, dword [ecx + 0x2b0]
mov edx, dword [eax + 0x24]
add ecx, 0x2b0
call edx
call eax
jmp 0x48833a
call dword [0x100cf21c]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
cmp edi, ecx
je 0x4884b3
add dword [esp + 0x1c], 0xffff
sub ecx, 2
cmp dword [esp + 0x28], ebx
mov dword [esp + 0x20], ecx
je 0x4881c0
mov ax, word [esp + 0xc]
xor ebx, ebx
shr ax, 1
movzx eax, ax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebx
lea eax, [ebx + 1]
cmp word [edi], 0x5c
mov dword [esp + 0x4c], edi
je 0x488395
mov cx, word [esp + 0x18]
cmp word [esp + 0x1c], cx
jne 0x48849f
mov word [esp + 0xc], bx
cmp word [edi], 0x5c
mov dword [esp + 0x44], 0
jne 0x4883b4
lea edx, [ebx + 2]
mov word [esp + 0xc], dx
mov dword [esp + 0x44], eax
mov esi, dword [0x100ef48c]
push 8
lea eax, [esp + 0x2a8]
push eax
mov dword [esp + 0x30], 0
add esi, 0x160
call dword [0x100ef7e8]
push 0x21
push 3
lea ecx, [esp + 0x2ac]
push ecx
lea edx, [esp + 0x278]
push edx
mov edx, dword [esi]
push 0x100001
lea eax, [esp + 0x3c]
push eax
mov eax, dword [edx + 0x24]
mov ecx, esi
call eax
call eax
test eax, eax
jne 0x488486
push 0x400
call fcn.0053b370
mov esi, dword [0x100ef48c]
add esp, 4
push 8
lea ecx, [esp + 0x2c0]
mov edi, eax
push ecx
mov dword [esp + 0x1b0], edi
mov dword [esp + 0x1b4], 0x400
add esi, 0x550
call dword [0x100ef7e8]
mov eax, dword [esp + 0x28]
push 1
push 0
push 0
push 3
push 0x400
push edi
lea edx, [esp + 0x2d4]
push edx
mov edx, dword [esi]
push 0
push 0
push 0
push eax
mov eax, dword [edx + 0x24]
mov ecx, esi
call eax
call eax
test eax, eax
je 0x4884cd
lea esi, [esp + 0x1a8]
call fcn.00472330
mov edi, dword [esp + 0x4c]
lea eax, [esp + 0x28]
call fcn.0053d580
mov cx, word [esp + 0x18]
cmp word [esp + 0x1c], cx
je 0x488565
mov eax, 1
add dword [esp + 0x1c], eax
add ebx, 2
add edi, 2
jmp 0x48837b
cmp dword [esp + 0x28], ebx
jne 0x488363
mov eax, dword [esp + 0x18]
add eax, eax
mov word [esp + 0xc], ax
jmp 0x488368
mov edi, dword [ebp + 8]
lea eax, [esp + 0xc]
mov esi, edi
call fcn.00505650
cmp dword [esp + 0x44], 0
je 0x4884e7
add word [edi], 0xfffe
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
cmp ax, dx
jne 0x488519
push 0x100cf494
lea edx, [esp + 0x8c]
push edx
call dword [0x100ef7e0]
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x88]
push eax
push ecx
jmp 0x488543
mov esi, dword [esp + 0x10]
movzx ecx, dx
sub eax, edx
lea eax, [eax + eax - 2]
lea ecx, [esi + ecx*2 + 2]
mov word [esp + 0x88], ax
mov word [esp + 0x8a], ax
mov edx, dword [esp + 0x88]
push ecx
push edx
mov esi, dword [ebp + 0xc]
call fcn.005055f0
lea esi, [esp + 0x1a8]
call fcn.00472330
lea eax, [esp + 0x28]
call fcn.0053d580
jmp 0x48866d
mov eax, dword [esp + 0x18]
push 8
lea ecx, [eax + eax]
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x2e8]
push eax
mov word [esp + 0x18], cx
call dword [0x100ef7ec]
lea ecx, [esp + 0x2e0]
push ecx
mov eax, 0x100d1384
call fcn.005053b0
test eax, eax
je 0x4886dd
mov eax, dword [0x100d1394]
mov edx, dword [0x100d1390]
mov ecx, dword [0x100d1398]
mov dword [esp + 0x1d8], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1d4], edx
mov dx, word [0x100d139c]
and eax, 0xfffe
cmp eax, 0xc
mov dword [esp + 0x1dc], ecx
mov word [esp + 0x1e0], dx
jb 0x4886dd
mov eax, dword [esp + 0x10]
cmp word [eax + 0xa], 0x3a
jne 0x4886dd
mov cx, word [eax + 8]
lea edx, [esp + 0x1d4]
push edx
lea eax, [esp + 0x250]
push eax
mov word [esp + 0x1e4], cx
call dword [0x100ef7e0]
mov ecx, dword [esp + 0x250]
mov edx, dword [esp + 0x24c]
mov edi, dword [ebp + 8]
push ecx
push edx
mov esi, edi
call fcn.005055f0
mov ax, word [esp + 0xc]
cmp ax, 0xc
mov edx, 6
jne 0x4886a4
push 0x100cf494
lea eax, [esp + 0x94]
push eax
call dword [0x100ef7e0]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
push ecx
push edx
mov esi, dword [ebp + 0xc]
call fcn.005055f0
sub esp, 8
mov esi, edi
mov edi, esp
call fcn.005055a0
mov edx, dword [esp + 0x3c]
call fcn.004a2c40
lea eax, [esp + 0xc]
call fcn.00505660
mov edx, dword [esp + 0x24]
push edx
call dword [0x100cf114]
call fcn.00485950
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [esp + 0x10]
add ecx, 0xc
cmp word [ecx], 0x5c
jne 0x4886b9
add ecx, 2
mov edx, 7
shr ax, 1
sub ax, dx
add ax, ax
mov word [esp + 0x90], ax
mov word [esp + 0x92], ax
mov eax, dword [esp + 0x90]
push ecx
push eax
jmp 0x488665
mov ecx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
lea eax, [esp + 0xc]
mov word [ecx], 0
call fcn.00505650
jmp 0x488682