Function at 0x636a50
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 0x636aab
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.006eb370
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 0x63701a
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 0x63701a
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 0x63701a
mov eax, dword [esp + 0x10]
cmp word [eax + 0xa], 0x3a
jne 0x63701a
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 0x636d54
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 0x636d54
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
test eax, eax
je 0x636d3c
lea eax, [esp + 0xcc]
lea esi, [esp + 0x2c4]
call fcn.006b5540
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov esi, dword [ebp + 8]
push ecx
push edx
call fcn.006b55f0
lea eax, [esp + 0x2c4]
call fcn.006b5660
mov ax, word [esp + 0xc]
cmp ax, 0xc
mov edx, 6
jne 0x636cb1
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 0x636ce8
mov ecx, dword [esp + 0x10]
add ecx, 0xc
cmp word [ecx], 0x5c
jne 0x636cc6
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.006b55f0
lea esi, [esp + 0x18]
call fcn.00675d90
lea esi, [esp + 0x1c]
call fcn.00675d90
lea eax, [esp + 0xc]
call fcn.006b5660
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 0x636d54
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x18], 0
cmp dword [0x100ef56c], 0
je 0x637002
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 0x637002
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 0x637002
mov al, byte [esp + esi + 0x370]
test al, al
je 0x636dca
cmp al, 1
je 0x636dca
cmp al, 4
jne 0x637002
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.00654ee0
test eax, eax
je 0x636e50
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.006b55f0
lea esi, [esp + 0x1c]
call fcn.00675d90
lea eax, [esp + 0xc]
call fcn.006b5660
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.00625b90
lea eax, [esp + 0x78]
push eax
mov ecx, eax
push ecx
mov eax, ebx
call fcn.00654d00
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.00653d50
cmp edi, 0xea
je 0x636e73
xor eax, eax
cmp edi, eax
jne 0x636ff2
mov ebx, 0x100d13a0
lea edi, [esp + 0xc0]
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
call fcn.00625be0
add esi, 2
push esi
mov esi, edi
call fcn.00652150
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.00636a50
movzx eax, word [esi]
test ax, ax
jbe 0x636f5e
mov edx, dword [esi + 4]
shr ax, 1
sub ax, 1
movzx ecx, ax
cmp word [edx + ecx*2], 0x5c
je 0x636f5e
mov eax, 0x100cf980
call fcn.006b5790
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.006b56b0
lea ecx, [esp + 0xc0]
call fcn.006229b0
lea esi, [esp + 0xb0]
call fcn.00622330
lea esi, [esp + 0x1c]
call fcn.00675d90
lea eax, [esp + 0xc]
call fcn.006b5660
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.00622330
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x63701a
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.006261f0
test al, al
jne 0x63703b
xor ebx, ebx
jmp 0x637043
add dword [edi + 0x10], 1
mov al, 1
xor ebx, ebx
mov byte [esp + 0xbc], al
mov eax, esi
call fcn.006b9070
cmp eax, ebx
mov dword [esp + 0x44], eax
je 0x637901
mov ecx, dword [esp + 0x34]
lea eax, [esp + 0x44]
call fcn.00654c70
mov esi, eax
mov ax, word [esi]
mov word [esp + 0x3c], ax
movzx eax, word [esi]
movzx ecx, ax
and ecx, 0x800000ff
jns 0x63708a
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.006e5fe0
call dword [0x100cf08c]
mov edi, eax
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax]
cmp edi, ecx
je 0x637150
mov edx, dword [esp + 0xe4]
mov eax, dword [edx]
test eax, eax
jne 0x637440
mov ecx, dword [esp + 0xe4]
push ebx
push edi
push ecx
call dword [0x100cf090]
test eax, eax
sete al
cmp al, bl
je 0x637440
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 0x6371ca
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 0x6371ca
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 0x6371ca
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 0x6379bd
mov ax, word [esp + 0x3c]
movzx edx, ax
and edx, 0x800000ff
mov word [esp + 0x2c], ax
jns 0x637218
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.006e5fe0
call dword [0x100cf08c]
mov edi, eax
mov eax, dword [esp + 0x104]
mov ecx, dword [eax]
cmp edi, ecx
je 0x6372de
mov edx, dword [esp + 0x104]
mov eax, dword [edx]
test eax, eax
jne 0x63745a
mov ecx, dword [esp + 0x104]
push ebx
push edi
push ecx
call dword [0x100cf090]
test eax, eax
sete al
cmp al, bl
je 0x63745a
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 0x637351
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 0x637351
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 0x637351
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 0x6375ef
movzx edx, si
and edx, 0x800000ff
jns 0x6373ac
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 0x637500
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.006e5220
test al, al
jne 0x637474
jmp 0x637480
push edi
lea eax, [esp + 0xe0]
call fcn.006e5290
test al, al
jne 0x637150
jmp 0x63715c
push edi
lea eax, [esp + 0x100]
call fcn.006e5290
test al, al
jne 0x6372de
jmp 0x6372ea
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 0x6375e3
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 0x6375e3
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 0x6375e3
push eax
call dword [0x100cf080]
mov eax, dword [edi + 0x14]
push 0
push 1
push eax
jmp 0x6375dd
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.006e5220
test al, al
je 0x637573
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 0x6375e3
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 0x6375e3
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 0x6375e3
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 0x637692
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 0x6379ef
mov eax, dword [esp + 0x30]
cmp eax, ebx
mov esi, eax
je 0x6377c5
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.006e5fe0
call dword [0x100cf08c]
mov edx, dword [esp + 0x124]
mov edi, eax
mov eax, dword [edx]
cmp edi, eax
je 0x637753
mov ecx, dword [esp + 0x124]
mov edx, dword [ecx]
test edx, edx
jne 0x637989
mov eax, dword [esp + 0x124]
push ebx
push edi
push eax
call dword [0x100cf090]
test eax, eax
sete al
cmp al, bl
je 0x637989
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 0x6377c5
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 0x6377c5
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 0x6377c5
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 0x6378f7
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.006e5fe0
call dword [0x100cf08c]
mov edi, eax
mov eax, dword [esp + 0x164]
mov ecx, dword [eax]
cmp edi, ecx
je 0x637886
mov edx, dword [esp + 0x164]
mov eax, dword [edx]
test eax, eax
jne 0x6379a3
mov ecx, dword [esp + 0x164]
push ebx
push edi
push ecx
call dword [0x100cf090]
test eax, eax
sete al
cmp al, bl
je 0x6379a3
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 0x6378f7
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 0x6378f7
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 0x6378f7
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 0x63705d
lea eax, [esp + 0xb8]
call fcn.006261a0
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.006b53e0
test eax, eax
mov eax, dword [esp + 0x10]
je 0x637ce2
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 0x637ce2
cmp word [esi], 0x5c
je 0x637a9c
add esi, 2
cmp esi, eax
jne 0x637973
jmp 0x637ce2
push edi
lea eax, [esp + 0x120]
call fcn.006e5290
test al, al
jne 0x637753
jmp 0x63775f
push edi
lea eax, [esp + 0x160]
call fcn.006e5290
test al, al
jne 0x637886
jmp 0x637892
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov esi, dword [ebp + 8]
push eax
push ecx
call fcn.006b55f0
mov edx, dword [ebp + 0xc]
lea eax, [esp + 0x3c]
mov word [edx], bx
call fcn.006b5660
lea eax, [esp + 0xb8]
call fcn.006261a0
jmp 0x636e15
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov esi, dword [ebp + 8]
push eax
push ecx
call fcn.006b55f0
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.006b55f0
lea eax, [esp + 0x2c]
call fcn.006b5660
lea eax, [esp + 0x3c]
call fcn.006b5660
lea eax, [esp + 0xb8]
call fcn.006261a0
lea eax, [esp + 0xc]
call fcn.006b5660
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 0x637ce2
jmp 0x637ab0
movzx ecx, word [esi]
cmp cx, 0x5c
je 0x637ce2
cmp cx, 0x3a
je 0x637acf
add esi, 2
cmp esi, eax
jne 0x637ab0
jmp 0x637ce2
cmp esi, eax
je 0x637ce2
cmp word [esi], 0x5c
je 0x637ae9
add esi, 2
cmp esi, eax
jne 0x637ad7
jmp 0x637ce2
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 0x637b1b
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.006e5fe0
call dword [0x100cf08c]
mov edi, eax
mov eax, dword [esp + 0x144]
mov ecx, dword [eax]
cmp edi, ecx
je 0x637be1
mov edx, dword [esp + 0x144]
mov eax, dword [edx]
test eax, eax
jne 0x637cc1
mov ecx, dword [esp + 0x144]
push ebx
push edi
push ecx
call dword [0x100cf090]
test eax, eax
sete al
cmp al, bl
je 0x637cc1
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 0x637c5b
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 0x637c5b
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 0x637c5b
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.006b56b0
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.00636a50
mov eax, esi
call fcn.006b5660
jmp 0x637a62
push edi
lea eax, [esp + 0x140]
call fcn.006e5290
test al, al
jne 0x637be1
jmp 0x637bed
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 0x637d00
mov edx, dword [esp + 0x18]
cmp word [edx], 0x5c
je 0x637d16
movzx edx, di
movzx eax, ax
add edx, edx
cmp edx, eax
jne 0x637d63
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.0065b490
test eax, eax
je 0x637d88
mov eax, esi
call fcn.006b5660
mov ecx, 2
mov ax, word [esp + 0xc]
movzx edx, di
movzx esi, ax
add edx, edx
cmp edx, esi
je 0x637f42
add dword [esp + 0x20], ecx
add edi, 1
add dword [esp + 0x18], ecx
jmp 0x637d00
mov ax, word [esp + 0x58]
mov word [esp + 0x70], ax
movzx eax, ax
mov ecx, eax
and ecx, 0x800000ff
jns 0x637da7
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.006eb370
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.006b56b0
mov edi, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
push edi
push ecx
lea esi, [esp + 0x14]
call fcn.006b55f0
test edi, edi
je 0x637eab
push 0x100ef4b8
mov edx, 0x100ef4b4
lea eax, [esp + 0x330]
call fcn.006e2c00
mov edx, dword [0x100ef808]
push edi
push 1
push edx
call dword [0x100cf260]
cmp byte [esp + 0x348], 0
je 0x637eab
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 0x637eab
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 0x637eab
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 0x637ce0
push 0x100ef4b8
mov edx, 0x100ef4b4
lea eax, [esp + 0x350]
call fcn.006e2c00
mov eax, dword [0x100ef808]
push esi
push 1
push eax
call dword [0x100cf260]
cmp byte [esp + 0x368], 0
je 0x637ce0
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 0x637ce0
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 0x637ce0
push eax
call dword [0x100cf080]
mov edx, dword [esi + 0x14]
push 0
push 1
push edx
call dword [0x100cf088]
jmp 0x637ce0
mov edi, dword [esp + 0x34]
lea ebx, [esp + 0x65]
call fcn.006261f0
test al, al
jne 0x637f5b
xor ebx, ebx
mov byte [esp + 0x17], bl
jmp 0x637f66
add dword [edi + 0x10], 1
mov byte [esp + 0x17], 1
xor ebx, ebx
mov eax, edi
call fcn.006b9070
cmp eax, ebx
mov dword [esp + 0x4c], eax
je 0x638040
lea esp, [esp]
lea eax, [esp + 0x4c]
mov ecx, edi
call fcn.00654c70
mov esi, eax
lea edi, [esp + 0x50]
call fcn.006b55a0
push 1
lea eax, [esp + 0x10]
push eax
mov ecx, edi
push ecx
call dword [0x100ef7cc]
test eax, eax
je 0x6380dc
mov esi, edi
lea edi, [esp + 0x98]
call fcn.006b55a0
push 0x100cf980
lea edx, [esp + 0x310]
push edx
call dword [0x100ef7e0]
lea ebx, [esp + 0x30c]
mov esi, edi
call fcn.006b56b0
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.006b53e0
test eax, eax
jne 0x638153
mov eax, edi
call fcn.006b5660
lea eax, [esp + 0x50]
call fcn.006b5660
cmp dword [esp + 0x4c], 0
mov edi, dword [esp + 0x34]
jne 0x637f80
xor ebx, ebx
cmp byte [esp + 0x17], 0
je 0x638079
add dword [edi + 0x10], 0xffffffff
jne 0x638079
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 0x638079
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 0x6381c4
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov esi, dword [ebp + 8]
push ecx
push edx
call fcn.006b55f0
mov eax, dword [ebp + 0xc]
mov word [eax], 0
lea eax, [esp + 0x50]
call fcn.006b5660
cmp byte [esp + 0x17], 0
je 0x636d02
mov esi, dword [esp + 0x34]
add dword [esi + 0x10], 0xffffffff
jne 0x636d02
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 0x636d02
push eax
call dword [0x100cf080]
mov eax, dword [esi + 0x14]
push 0
push 1
push eax
call dword [0x100cf088]
jmp 0x636d02
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov esi, dword [ebp + 8]
push ecx
push edx
call fcn.006b55f0
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.006b55f0
lea eax, [esp + 0x98]
call fcn.006b5660
jmp 0x6380f6
mov eax, dword [esp + 0x18]
cmp word [ecx], 0x5c
je 0x6381d5
cmp word [esp + 0x1c], ax
jne 0x63833a
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 0x63830c
mov esi, 0x400
xor edi, edi
cmp esi, ebx
jbe 0x638248
push esi
call fcn.006eb370
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 0x638287
cmp eax, 0x80000005
je 0x638287
cmp eax, 0xc0000023
jne 0x63829a
add esi, 0x100
cmp edi, ebx
je 0x638237
mov eax, edi
call fcn.00622510
jmp 0x638237
cmp eax, ebx
jne 0x638301
mov ecx, dword [edi + 4]
mov edx, dword [edi]
push ecx
push edx
lea esi, [esp + 0x14]
call fcn.006b55f0
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.006b56b0
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.00622510
xor ebx, ebx
jmp 0x63830c
cmp edi, ebx
je 0x63830c
mov eax, edi
call fcn.00622510
mov eax, dword [esp + 0x60]
cmp eax, ebx
je 0x63833a
mov ecx, dword [0x100ef48c]
cmp ecx, ebx
push eax
je 0x638334
mov eax, dword [ecx + 0x2b0]
mov edx, dword [eax + 0x24]
add ecx, 0x2b0
call edx
call eax
jmp 0x63833a
call dword [0x100cf21c]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
cmp edi, ecx
je 0x6384b3
add dword [esp + 0x1c], 0xffff
sub ecx, 2
cmp dword [esp + 0x28], ebx
mov dword [esp + 0x20], ecx
je 0x6381c0
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 0x638395
mov cx, word [esp + 0x18]
cmp word [esp + 0x1c], cx
jne 0x63849f
mov word [esp + 0xc], bx
cmp word [edi], 0x5c
mov dword [esp + 0x44], 0
jne 0x6383b4
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 0x638486
push 0x400
call fcn.006eb370
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 0x6384cd
lea esi, [esp + 0x1a8]
call fcn.00622330
mov edi, dword [esp + 0x4c]
lea eax, [esp + 0x28]
call fcn.006ed580
mov cx, word [esp + 0x18]
cmp word [esp + 0x1c], cx
je 0x638565
mov eax, 1
add dword [esp + 0x1c], eax
add ebx, 2
add edi, 2
jmp 0x63837b
cmp dword [esp + 0x28], ebx
jne 0x638363
mov eax, dword [esp + 0x18]
add eax, eax
mov word [esp + 0xc], ax
jmp 0x638368
mov edi, dword [ebp + 8]
lea eax, [esp + 0xc]
mov esi, edi
call fcn.006b5650
cmp dword [esp + 0x44], 0
je 0x6384e7
add word [edi], 0xfffe
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
cmp ax, dx
jne 0x638519
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 0x638543
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.006b55f0
lea esi, [esp + 0x1a8]
call fcn.00622330
lea eax, [esp + 0x28]
call fcn.006ed580
jmp 0x63866d
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.006b53b0
test eax, eax
je 0x6386dd
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 0x6386dd
mov eax, dword [esp + 0x10]
cmp word [eax + 0xa], 0x3a
jne 0x6386dd
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.006b55f0
mov ax, word [esp + 0xc]
cmp ax, 0xc
mov edx, 6
jne 0x6386a4
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.006b55f0
sub esp, 8
mov esi, edi
mov edi, esp
call fcn.006b55a0
mov edx, dword [esp + 0x3c]
call fcn.00652c40
lea eax, [esp + 0xc]
call fcn.006b5660
mov edx, dword [esp + 0x24]
push edx
call dword [0x100cf114]
call fcn.00635950
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 0x6386b9
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 0x638665
mov ecx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
lea eax, [esp + 0xc]
mov word [ecx], 0
call fcn.006b5650
jmp 0x638682