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

Disassembly:
mov ecx, dword [0x9ec7ac]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x94]
cmp eax, dword [ecx + 8]
jbe 0x639268
sub esp, 0x114
mov ebx, dword [esp + 0x120]
cmp ebx, 2
jle 0x637562
mov ebp, dword [esp + 0x118]
mov edx, dword [ebp + 0x664]
mov esi, dword [ebp + 0x65c]
cmp edx, 0x100
jb 0x63925d
mov ecx, dword [ebp + 0x67c]
mov edx, dword [ebp + 0x680]
mov eax, dword [ebp + 0x678]
mov dword [ebp + 0x62c], 0
mov dword [ebp + 0x630], 0
mov byte [ebp + 0x634], 0
mov dword [ebp + 0x63c], ecx
mov dword [ebp + 0x640], edx
mov ecx, dword [0x9eca70]
test ecx, ecx
je 0x636f73
call fcn.00468460
mov dword [edi], eax
mov ecx, dword [ebp + 0x638]
mov dword [edi + 4], ecx
mov dword [esp + 0xe8], esi
mov dword [ebp + 0x638], eax
lea edi, [esp + 0x100]
xor eax, eax
call fcn.004686fb
lea edi, [esp + 0xec]
call fcn.004686fb
test ebx, 1
je 0x6371b5
lea edx, [ebp + 0x62c]
mov edi, dword [esp + 0x11c]
movzx eax, byte [edi + ebx - 1]
lea ecx, [esi + eax*8]
lea eax, [esi + eax*8]
mov eax, dword [eax + 4]
lea esi, [eax + 0x8000]
shr esi, 0x10
mov dword [esp + 0x58], esi
shl esi, 0x10
sub esi, eax
mov ebx, dword [esp + 0x58]
cmp ebx, 0x20
sbb eax, eax
not eax
or ebx, eax
mov eax, ecx
mov ecx, ebx
sar esi, cl
add esi, dword [eax]
mov dword [esp + 0x100], edx
mov ecx, dword [ebp + 0x654]
mov ebx, dword [ebp + 0x650]
mov eax, dword [ebp + 0x658]
mov dword [esp + 0x108], ecx
mov dword [esp + 0x10c], eax
mov dword [esp + 0x104], ebx
cmp ecx, esi
jbe 0x639256
movzx ebx, word [ebx + esi*2]
mov word [esp + 0x110], bx
mov ebx, dword [esp + 0x120]
movzx esi, byte [edi + ebx - 2]
mov ebx, dword [esp + 0xe8]
lea ecx, [ebx + esi*8]
lea esi, [ebx + esi*8]
mov esi, dword [esi + 4]
lea ebx, [esi + 0x8000]
shr ebx, 0x10
mov dword [esp + 0x54], ebx
shl ebx, 0x10
sub ebx, esi
mov esi, dword [esp + 0x54]
cmp esi, 0x20
sbb eax, eax
not eax
or esi, eax
mov eax, ecx
mov ecx, esi
sar ebx, cl
add ebx, dword [eax]
mov dword [esp + 0xec], edx
mov ecx, dword [ebp + 0x654]
mov edx, dword [ebp + 0x650]
mov esi, dword [ebp + 0x658]
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xf8], esi
mov dword [esp + 0xf0], edx
cmp ecx, ebx
jbe 0x63924f
movzx edx, word [edx + ebx*2]
mov word [esp + 0xfc], dx
mov edx, dword [esp + 0x120]
movzx ebx, byte [edi + edx - 3]
mov esi, dword [esp + 0xe8]
lea eax, [esi + ebx*8]
lea ebx, [esi + ebx*8 + 4]
movzx ecx, word [esp + 0x110]
mov word [esp + 0x26], cx
movzx ebp, cx
add ebp, dword [ebx]
shr ebp, 0x10
mov ebx, ebp
and ebp, 0xf
mov ecx, ebp
movzx esi, word [esp + 0x26]
mov ebp, esi
shr si, cl
movzx esi, si
add esi, dword [eax]
test bl, bl
je 0x63718b
mov dword [esp + 0xa8], esi
mov eax, dword [esp + 0x100]
lea ecx, [ebx - 0x10]
neg ecx
and ecx, 0xf
shl ebp, cl
shr bp, cl
movzx ebp, bp
mov dword [esp + 0xcc], ebp
movzx ecx, byte [eax + 8]
and ecx, 0x3f
mov byte [esp + 0x23], cl
shl ebp, cl
lea edi, [ecx - 0x20]
mov ecx, edi
mov edx, dword [esp + 0xcc]
shl edx, cl
neg ecx
mov esi, dword [esp + 0xcc]
shr esi, cl
cmp cl, 0x20
sbb ecx, ecx
and esi, ecx
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
and edx, edi
or esi, edx
or esi, dword [eax + 4]
movzx edx, byte [esp + 0x23]
cmp dl, 0x20
sbb edx, edx
and edx, ebp
or dword [eax], edx
mov dword [eax + 4], esi
movzx edx, byte [eax + 8]
add edx, ebx
mov byte [eax + 8], dl
mov edx, dword [esp + 0x120]
mov esi, dword [esp + 0xa8]
mov edi, dword [esp + 0x11c]
mov ecx, dword [esp + 0x108]
cmp ecx, esi
jbe 0x639248
mov ebx, dword [esp + 0x104]
movzx ebx, word [ebx + esi*2]
mov word [esp + 0x110], bx
lea ebx, [edx - 3]
jmp 0x6372d1
lea edx, [ebp + 0x62c]
mov edi, dword [esp + 0x11c]
movzx eax, byte [edi + ebx - 1]
lea ecx, [esi + eax*8]
lea eax, [esi + eax*8]
mov eax, dword [eax + 4]
lea esi, [eax + 0x8000]
shr esi, 0x10
mov dword [esp + 0x50], esi
shl esi, 0x10
sub esi, eax
mov ebx, dword [esp + 0x50]
cmp ebx, 0x20
sbb eax, eax
not eax
or ebx, eax
mov eax, ecx
mov ecx, ebx
sar esi, cl
add esi, dword [eax]
mov dword [esp + 0xec], edx
mov ecx, dword [ebp + 0x654]
mov ebx, dword [ebp + 0x650]
mov eax, dword [ebp + 0x658]
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xf8], eax
mov dword [esp + 0xf0], ebx
cmp ecx, esi
jbe 0x639241
movzx ebx, word [ebx + esi*2]
mov word [esp + 0xfc], bx
mov ebx, dword [esp + 0x120]
movzx esi, byte [edi + ebx - 2]
mov edi, dword [esp + 0xe8]
lea ecx, [edi + esi*8]
lea esi, [edi + esi*8]
mov esi, dword [esi + 4]
lea edi, [esi + 0x8000]
shr edi, 0x10
mov dword [esp + 0x4c], edi
shl edi, 0x10
sub edi, esi
mov esi, dword [esp + 0x4c]
cmp esi, 0x20
sbb eax, eax
not eax
or esi, eax
mov eax, ecx
mov ecx, esi
sar edi, cl
add edi, dword [eax]
mov dword [esp + 0x100], edx
mov ecx, dword [ebp + 0x654]
mov edx, dword [ebp + 0x650]
mov esi, dword [ebp + 0x658]
mov dword [esp + 0x108], ecx
mov dword [esp + 0x10c], esi
mov dword [esp + 0x104], edx
cmp ecx, edi
jbe 0x63923a
movzx edx, word [edx + edi*2]
mov word [esp + 0x110], dx
lea edx, [ebx - 2]
mov edi, dword [esp + 0x11c]
mov ebx, edx
mov edx, dword [esp + 0x120]
test ebx, 2
je 0x637509
lea eax, [ebx - 1]
cmp edx, eax
jbe 0x639233
movzx ebp, byte [edi + ebx - 1]
mov esi, dword [esp + 0xe8]
lea eax, [esi + ebp*8]
lea ebp, [esi + ebp*8 + 4]
movzx ecx, word [esp + 0xfc]
mov word [esp + 0x26], cx
movzx esi, cx
add esi, dword [ebp]
shr esi, 0x10
mov ebp, esi
and esi, 0xf
mov ecx, esi
movzx edi, word [esp + 0x26]
mov esi, edi
shr di, cl
movzx edi, di
add edi, dword [eax]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x6373bf
mov dword [esp + 0x5c], ebx
mov dword [esp + 0xa4], edi
mov eax, dword [esp + 0xec]
lea ecx, [ebp - 0x10]
neg ecx
and ecx, 0xf
shl esi, cl
shr si, cl
movzx esi, si
mov dword [esp + 0xcc], esi
movzx ecx, byte [eax + 8]
and ecx, 0x3f
mov byte [esp + 0x23], cl
shl esi, cl
lea edx, [ecx - 0x20]
mov ecx, edx
mov ebx, dword [esp + 0xcc]
shl ebx, cl
neg ecx
mov edi, dword [esp + 0xcc]
shr edi, cl
cmp cl, 0x20
sbb ecx, ecx
and edi, ecx
cmp dl, 0x20
sbb edx, edx
and edx, ebx
or edi, edx
or edi, dword [eax + 4]
movzx edx, byte [esp + 0x23]
cmp dl, 0x20
sbb edx, edx
and edx, esi
or dword [eax], edx
mov dword [eax + 4], edi
movzx edx, byte [eax + 8]
add edx, ebp
mov byte [eax + 8], dl
mov edx, dword [esp + 0x120]
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0xa4]
mov ecx, dword [esp + 0xf4]
cmp ecx, edi
jbe 0x63922c
lea eax, [ebx - 2]
mov ebp, dword [esp + 0xf0]
movzx ebp, word [ebp + edi*2]
mov word [esp + 0xfc], bp
cmp edx, eax
jbe 0x639225
mov ebp, dword [esp + 0x11c]
movzx ebx, byte [ebp + ebx - 2]
mov esi, dword [esp + 0xe8]
lea edi, [esi + ebx*8]
lea ebx, [esi + ebx*8 + 4]
movzx ecx, word [esp + 0x110]
mov word [esp + 0x26], cx
movzx esi, cx
add esi, dword [ebx]
shr esi, 0x10
mov ebx, esi
and esi, 0xf
mov ecx, esi
movzx ebp, word [esp + 0x26]
mov esi, ebp
shr bp, cl
movzx ebp, bp
add ebp, dword [edi]
test bl, bl
je 0x6374de
mov dword [esp + 0xcc], ebx
mov dword [esp + 0xa0], ebp
mov edi, dword [esp + 0x100]
mov dword [esp + 0xe4], edi
lea ecx, [ebx - 0x10]
neg ecx
and ecx, 0xf
shl esi, cl
shr si, cl
movzx esi, si
mov dword [esp + 0xc8], esi
movzx ecx, byte [edi + 8]
and ecx, 0x3f
mov byte [esp + 0x23], cl
shl esi, cl
lea edx, [ecx - 0x20]
mov ecx, edx
mov ebp, dword [esp + 0xc8]
shl ebp, cl
neg ecx
mov ebx, dword [esp + 0xc8]
shr ebx, cl
movzx edi, byte [esp + 0x23]
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
and edi, esi
cmp dl, 0x20
sbb edx, edx
and ebp, edx
cmp cl, 0x20
sbb edx, edx
and ebx, edx
or ebx, ebp
mov edx, dword [esp + 0xe4]
or ebx, dword [edx + 4]
or dword [edx], edi
mov dword [edx + 4], ebx
movzx ebx, byte [edx + 8]
mov ebp, dword [esp + 0xcc]
add ebx, ebp
mov byte [edx + 8], bl
mov edx, dword [esp + 0x120]
mov ebp, dword [esp + 0xa0]
mov ecx, dword [esp + 0x108]
cmp ecx, ebp
jbe 0x63921e
mov esi, dword [esp + 0x104]
movzx ebp, word [esi + ebp*2]
mov word [esp + 0x110], bp
mov edi, dword [esp + 0x11c]
mov ebx, eax
mov ebp, dword [esp + 0x118]
movzx esi, byte [ebp + 0x68b]
xchg esi, eax
test al, al
xchg esi, eax
jne 0x637538
cmp byte [ebp + 0x68a], 8
ja 0x637532
mov esi, dword [esp + 0xe8]
jmp 0x638c9d
xchg esi, eax
test al, al
xchg esi, eax
je 0x637559
cmp byte [ebp + 0x68a], 8
ja 0x63754d
mov esi, dword [esp + 0xe8]
jmp 0x638696
mov esi, dword [esp + 0xe8]
jmp 0x637f10
mov esi, dword [esp + 0xe8]
jmp 0x6375d4
lea eax, [0x6f2340]
mov dword [esp], eax
call fcn.0040c5b0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x17
lea ecx, [0x73bfe0]
mov dword [eax], ecx
lea ecx, [0x7aaeb4]
mov dword [esp + 0x128], ecx
mov dword [esp + 0x12c], eax
add esp, 0x114
ret
mov ecx, dword [esp + 0x104]
movzx eax, word [ecx + eax*2]
mov word [esp + 0x110], ax
mov edi, dword [esp + 0x11c]
mov edx, dword [esp + 0x120]
mov esi, dword [esp + 0xe8]
mov ebp, dword [esp + 0x118]
mov ebx, dword [esp + 0xbc]
cmp ebx, 4
jl 0x637cab
nop
cmp byte [ebp + 0x634], 0x20
jb 0x63776a
mov dword [esp + 0x5c], ebx
mov eax, dword [ebp + 0x640]
mov ecx, dword [ebp + 0x63c]
add ecx, 4
mov esi, dword [ebp + 0x630]
mov dword [esp + 0xcc], esi
mov edi, dword [ebp + 0x62c]
mov dword [esp + 0xc8], edi
shr edi, 8
shl esi, 0x18
mov edx, dword [esp + 0xc8]
shr edx, 0x10
mov dword [esp + 0xc4], edx
mov ebx, dword [esp + 0xcc]
shl ebx, 0x10
mov edx, dword [esp + 0xcc]
shl edx, 8
mov dword [esp + 0xcc], edx
mov edx, dword [esp + 0xc8]
shr edx, 0x18
mov ebp, dword [ebp + 0x638]
or edi, esi
mov esi, dword [esp + 0xc4]
or ebx, esi
mov esi, dword [esp + 0xcc]
or esi, edx
cmp eax, ecx
jae 0x6376ff
mov dword [esp + 0xcc], edi
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc0], esi
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 4
lea eax, [0x6e4500]
mov dword [esp + 0x10], eax
call fcn.0044e230
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x118]
mov dword [ebx + 0x640], eax
mov eax, dword [0x9eca70]
test eax, eax
je 0x6376e0
call fcn.00468460
mov dword [edi], ecx
mov ebp, dword [ebx + 0x638]
mov dword [edi + 4], ebp
mov dword [ebx + 0x638], ecx
mov ebx, dword [esp + 0xc4]
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0xcc]
mov ebp, ecx
mov ecx, edx
mov edx, dword [esp + 0x118]
mov dword [edx + 0x63c], ecx
mov eax, edx
mov edx, dword [esp + 0xc8]
mov byte [ecx + ebp - 4], dl
xchg edi, eax
mov byte [ecx + ebp - 3], al
xchg edi, eax
mov byte [ecx + ebp - 2], bl
xchg esi, eax
mov byte [ecx + ebp - 1], al
xchg esi, eax
movzx edx, byte [eax + 0x634]
add edx, 0xffffffe0
mov byte [eax + 0x634], dl
mov edx, dword [eax + 0x630]
mov dword [eax + 0x62c], edx
mov dword [eax + 0x630], 0
mov edx, dword [esp + 0x120]
mov ebx, dword [esp + 0x5c]
mov ebp, eax
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0x11c]
lea eax, [ebx - 4]
cmp edx, eax
jbe 0x637ee1
mov dword [esp + 0xbc], eax
lea ecx, [ebx - 3]
movzx eax, byte [edi + ebx - 4]
cmp edx, ecx
jbe 0x637ed8
mov dword [esp + 0xb8], eax
lea ecx, [ebx - 2]
movzx eax, byte [edi + ebx - 3]
cmp edx, ecx
jbe 0x637ecf
mov dword [esp + 0xb4], eax
lea ecx, [ebx - 1]
movzx eax, byte [edi + ebx - 2]
cmp edx, ecx
jbe 0x637ec6
mov dword [esp + 0xb0], eax
movzx ebx, byte [edi + ebx - 1]
lea ecx, [esi + ebx*8 + 4]
lea ebx, [esi + ebx*8]
movzx edi, word [esp + 0xfc]
mov word [esp + 0x26], di
movzx edx, di
add edx, dword [ecx]
shr edx, 0x10
mov dword [esp + 0x38], edx
mov ecx, edx
and ecx, 0xf
shr di, cl
movzx edi, di
add edi, dword [ebx]
mov dword [esp + 0x8c], edi
mov ebx, dword [esp + 0xec]
and edx, 0x1f
lea ebp, [0x975980]
movzx edx, word [ebp + edx*2]
movzx ebp, word [esp + 0x26]
and edx, ebp
movzx edx, dx
mov dword [esp + 0xcc], edx
movzx ebp, byte [ebx + 8]
and ebp, 0x3f
mov ecx, ebp
shl edx, cl
lea eax, [ecx - 0x20]
mov byte [esp + 0x23], al
mov ecx, eax
mov esi, dword [esp + 0xcc]
shl esi, cl
neg eax
mov ecx, eax
mov edi, dword [esp + 0xcc]
shr edi, cl
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ebp, ebp
and edx, ebp
movzx ebp, byte [esp + 0x23]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ebp, ebp
and esi, ebp
cmp al, 0x20
sbb ebp, ebp
and edi, ebp
or edi, esi
or edi, dword [ebx + 4]
or dword [ebx], edx
mov dword [ebx + 4], edi
movzx edx, byte [ebx + 8]
mov ebp, dword [esp + 0x38]
add edx, ebp
mov byte [ebx + 8], dl
mov ecx, dword [esp + 0xf4]
mov eax, dword [esp + 0x8c]
cmp ecx, eax
jbe 0x637ec1
mov edx, dword [esp + 0xb0]
mov ebx, dword [esp + 0xe8]
lea ebp, [ebx + edx*8 + 4]
lea edx, [ebx + edx*8]
mov esi, dword [esp + 0xf0]
movzx esi, word [esi + eax*2]
mov word [esp + 0xfc], si
mov esi, dword [esp + 0x100]
movzx edi, word [esp + 0x110]
movzx ecx, di
add ecx, dword [ebp]
shr ecx, 0x10
mov dword [esp + 0x34], ecx
mov ebp, ecx
and ebp, 0xf
mov eax, ecx
mov ecx, ebp
mov ebp, edi
shr di, cl
movzx edi, di
add edi, dword [edx]
mov dword [esp + 0x88], edi
and eax, 0x1f
lea ebx, [0x975980]
movzx eax, word [ebx + eax*2]
and eax, ebp
movzx ebp, ax
mov dword [esp + 0xcc], ebp
movzx eax, byte [esi + 8]
and eax, 0x3f
mov ecx, eax
shl ebp, cl
lea ebx, [eax - 0x20]
mov ecx, ebx
mov edi, dword [esp + 0xcc]
shl edi, cl
neg ecx
mov edx, dword [esp + 0xcc]
shr edx, cl
cmp al, 0x20
sbb eax, eax
and ebp, eax
cmp bl, 0x20
sbb ebx, ebx
and edi, ebx
cmp cl, 0x20
sbb ebx, ebx
and edx, ebx
or edx, edi
or edx, dword [esi + 4]
or dword [esi], ebp
mov dword [esi + 4], edx
movzx edx, byte [esi + 8]
mov ebx, dword [esp + 0x34]
add edx, ebx
mov byte [esi + 8], dl
mov ecx, dword [esp + 0x108]
mov eax, dword [esp + 0x88]
cmp ecx, eax
jbe 0x637ebc
mov edx, dword [esp + 0x104]
movzx edx, word [edx + eax*2]
mov word [esp + 0x110], dx
mov edx, dword [esp + 0x118]
cmp byte [edx + 0x634], 0x20
jae 0x63799c
mov ecx, edx
jmp 0x637af2
mov ebx, dword [edx + 0x640]
mov dword [esp + 0xb0], ebx
mov ebp, dword [edx + 0x63c]
add ebp, 4
mov dword [esp + 0xac], ebp
mov esi, dword [edx + 0x62c]
mov dword [esp + 0xcc], esi
mov edi, esi
shr esi, 8
mov eax, edi
shr edi, 0x10
mov ecx, dword [edx + 0x630]
mov dword [esp + 0xc8], ecx
shl ecx, 0x18
mov ebx, dword [esp + 0xc8]
shl ebx, 0x10
mov ebp, dword [esp + 0xc8]
shl ebp, 8
shr eax, 0x18
mov edx, dword [edx + 0x638]
or esi, ecx
or ebx, edi
or eax, ebp
mov ebp, dword [esp + 0xb0]
mov edi, dword [esp + 0xac]
cmp ebp, edi
jae 0x637aa2
mov dword [esp + 0xc8], eax
mov dword [esp + 0xc4], ebx
mov dword [esp + 0xc0], esi
mov dword [esp], edx
mov dword [esp + 4], edi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 4
lea eax, [0x6e4500]
mov dword [esp + 0x10], eax
call fcn.0044e230
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x118]
mov dword [ebx + 0x640], eax
mov eax, dword [0x9eca70]
test eax, eax
je 0x637a83
call fcn.00468460
mov dword [edi], ecx
mov ebp, dword [ebx + 0x638]
mov dword [edi + 4], ebp
mov dword [ebx + 0x638], ecx
mov eax, dword [esp + 0xc8]
mov ebx, dword [esp + 0xc4]
mov esi, dword [esp + 0xc0]
mov edi, edx
mov edx, ecx
mov ebp, dword [esp + 0x118]
mov dword [ebp + 0x63c], edi
mov ecx, ebp
mov ebp, dword [esp + 0xcc]
xchg ebp, eax
mov byte [edi + edx - 4], al
xchg ebp, eax
xchg esi, eax
mov byte [edi + edx - 3], al
xchg esi, eax
mov byte [edi + edx - 2], bl
mov byte [edi + edx - 1], al
movzx edx, byte [ecx + 0x634]
add edx, 0xffffffe0
mov byte [ecx + 0x634], dl
mov edx, dword [ecx + 0x630]
mov dword [ecx + 0x62c], edx
mov dword [ecx + 0x630], 0
mov edx, dword [esp + 0xb4]
mov ebx, dword [esp + 0xe8]
lea ebp, [ebx + edx*8 + 4]
lea edx, [ebx + edx*8]
movzx esi, word [esp + 0xfc]
movzx edi, si
add edi, dword [ebp]
shr edi, 0x10
mov dword [esp + 0x30], edi
mov ebp, edi
and edi, 0xf
mov ecx, edi
mov edi, esi
shr si, cl
movzx esi, si
add esi, dword [edx]
mov dword [esp + 0x84], esi
mov edx, dword [esp + 0xec]
and ebp, 0x1f
lea ebx, [0x975980]
movzx ebp, word [ebx + ebp*2]
and ebp, edi
movzx ebp, bp
mov dword [esp + 0xcc], ebp
movzx edi, byte [edx + 8]
and edi, 0x3f
mov ecx, edi
shl ebp, cl
lea eax, [ecx - 0x20]
mov byte [esp + 0x23], al
mov ecx, eax
mov ebx, dword [esp + 0xcc]
shl ebx, cl
neg eax
mov ecx, eax
mov esi, dword [esp + 0xcc]
shr esi, cl
cmp al, 0x20
sbb eax, eax
and esi, eax
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
and ebp, edi
movzx edi, byte [esp + 0x23]
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
and ebx, edi
or esi, ebx
or esi, dword [edx + 4]
or dword [edx], ebp
mov dword [edx + 4], esi
movzx ebx, byte [edx + 8]
mov ebp, dword [esp + 0x30]
add ebx, ebp
mov byte [edx + 8], bl
mov ecx, dword [esp + 0xf4]
mov eax, dword [esp + 0x84]
cmp ecx, eax
jbe 0x637eb7
mov edx, dword [esp + 0xb8]
mov ebx, dword [esp + 0xe8]
lea ebp, [ebx + edx*8 + 4]
lea edx, [ebx + edx*8]
mov esi, dword [esp + 0xf0]
movzx esi, word [esi + eax*2]
mov word [esp + 0xfc], si
mov esi, dword [esp + 0x100]
movzx edi, word [esp + 0x110]
movzx ecx, di
add ecx, dword [ebp]
shr ecx, 0x10
mov dword [esp + 0x2c], ecx
mov ebp, ecx
and ebp, 0xf
mov eax, ecx
mov ecx, ebp
mov ebp, edi
shr di, cl
movzx edi, di
add edi, dword [edx]
mov dword [esp + 0x80], edi
and eax, 0x1f
lea ebx, [0x975980]
movzx eax, word [ebx + eax*2]
and eax, ebp
movzx ebp, ax
mov dword [esp + 0xcc], ebp
movzx eax, byte [esi + 8]
and eax, 0x3f
mov ecx, eax
shl ebp, cl
lea ebx, [eax - 0x20]
mov ecx, ebx
mov edi, dword [esp + 0xcc]
shl edi, cl
neg ecx
mov edx, dword [esp + 0xcc]
shr edx, cl
cmp al, 0x20
sbb eax, eax
and ebp, eax
cmp bl, 0x20
sbb ebx, ebx
and edi, ebx
cmp cl, 0x20
sbb ebx, ebx
and edx, ebx
or edx, edi
or edx, dword [esi + 4]
or dword [esi], ebp
mov dword [esi + 4], edx
movzx edx, byte [esi + 8]
mov ebx, dword [esp + 0x2c]
add edx, ebx
mov byte [esi + 8], dl
mov ecx, dword [esp + 0x108]
mov eax, dword [esp + 0x80]
cmp ecx, eax
ja 0x63759e
jmp 0x637eb2
movzx eax, byte [ebp + 0x68a]
lea ecx, [esp + 0xec]
mov dword [esp], ecx
mov byte [esp + 4], al
call fcn.00636d10
mov eax, dword [esp + 0x118]
movzx ecx, byte [eax + 0x68a]
lea edx, [esp + 0x100]
mov dword [esp], edx
mov byte [esp + 4], cl
call fcn.00636d10
mov eax, dword [esp + 0x118]
movzx ecx, byte [eax + 0x634]
and ecx, 0x3f
mov edx, 1
shl edx, cl
lea ebx, [ecx - 0x20]
mov ebp, ecx
mov ecx, ebx
mov esi, 1
shl esi, cl
neg ecx
mov edi, 1
shr edi, cl
nop
cmp bl, 0x20
sbb ebx, ebx
and esi, ebx
cmp cl, 0x20
sbb ecx, ecx
and edi, ecx
or edi, esi
or edi, dword [eax + 0x630]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ecx, ecx
and edx, ecx
or dword [eax + 0x62c], edx
mov dword [eax + 0x630], edi
movzx ecx, byte [eax + 0x634]
lea edx, [ecx + 1]
mov byte [eax + 0x634], dl
add ecx, 8
nop
shr cl, 3
mov byte [esp + 0x20], cl
xor edx, edx
jmp 0x637d80
mov ebx, dword [esp + 0x118]
mov dword [ebx + 0x63c], ebp
mov byte [ebp + eax - 1], dl
movzx ebp, byte [esp + 0x21]
lea edx, [ebp + 1]
movzx ecx, byte [esp + 0x20]
mov eax, ebx
cmp dl, cl
jae 0x637e7a
mov byte [esp + 0x21], dl
mov ebx, dword [eax + 0x640]
mov dword [esp + 0xbc], ebx
mov ebp, dword [eax + 0x63c]
inc ebp
mov dword [esp + 0xb8], ebp
mov esi, dword [eax + 0x630]
mov dword [esp + 0xcc], esi
mov edi, dword [eax + 0x62c]
shl edx, 3
mov ecx, edx
shr edi, cl
lea ebx, [ecx - 0x20]
mov ecx, ebx
shr esi, cl
neg ecx
mov ebp, dword [esp + 0xcc]
shl ebp, cl
mov eax, dword [eax + 0x638]
cmp dl, 0x20
sbb edx, edx
and edx, edi
cmp cl, 0x20
sbb edi, edi
and ebp, edi
or edx, ebp
cmp bl, 0x20
sbb ebx, ebx
and esi, ebx
or edx, esi
mov ebx, dword [esp + 0xbc]
mov ebp, dword [esp + 0xb8]
cmp ebx, ebp
jae 0x637d60
mov dword [esp + 0xcc], edx
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x6e4500]
mov dword [esp + 0x10], eax
call fcn.0044e230
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x118]
mov dword [ebx + 0x640], eax
mov eax, dword [0x9eca70]
test eax, eax
je 0x637e64
call fcn.00468460
mov dword [edi], ecx
mov eax, dword [ebx + 0x638]
mov dword [edi + 4], eax
mov dword [ebx + 0x638], ecx
mov ebp, edx
mov eax, ecx
mov edx, dword [esp + 0xcc]
jmp 0x637d60
mov byte [eax + 0x634], 0
mov dword [eax + 0x62c], 0
mov dword [eax + 0x630], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
add esp, 0x114
ret
call fcn.004684c0
call fcn.004684c0
call fcn.004684c0
call fcn.004684c0
mov eax, ecx
mov ecx, edx
call fcn.004684c0
mov eax, ecx
mov ecx, edx
call fcn.004684c0
mov eax, ecx
mov ecx, edx
call fcn.004684c0
mov ecx, edx
call fcn.004684c0
mov eax, dword [esp + 0x104]
movzx eax, word [eax + edi*2]
mov word [esp + 0x110], ax
mov edx, dword [esp + 0x120]
mov edi, dword [esp + 0x11c]
mov ebx, dword [esp + 0xbc]
cmp ebx, 4
jl 0x637cab
nop
cmp byte [ebp + 0x634], 0x20
jb 0x6380a6
mov dword [esp + 0x5c], ebx
mov eax, dword [ebp + 0x640]
mov ecx, dword [ebp + 0x63c]
add ecx, 4
mov esi, dword [ebp + 0x62c]
mov dword [esp + 0xcc], esi
mov edi, dword [ebp + 0x630]
mov dword [esp + 0xc8], edi
shr esi, 8
shl edi, 0x18
mov edx, dword [esp + 0xc8]
shl edx, 0x10
mov dword [esp + 0xc4], edx
mov ebx, dword [esp + 0xcc]
shr ebx, 0x10
mov edx, dword [esp + 0xc8]
shl edx, 8
mov dword [esp + 0xc8], edx
mov edx, dword [esp + 0xcc]
shr edx, 0x18
mov ebp, dword [ebp + 0x638]
or edi, esi
mov esi, dword [esp + 0xc4]
or ebx, esi
mov esi, dword [esp + 0xc8]
or edx, esi
cmp eax, ecx
jae 0x63803b
mov dword [esp + 0xc8], edx
mov dword [esp + 0xc4], edi
mov dword [esp + 0xc0], ebx
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 4
lea eax, [0x6e4500]
mov dword [esp + 0x10], eax
call fcn.0044e230
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x118]
mov dword [ebx + 0x640], eax
mov eax, dword [0x9eca70]
test eax, eax
je 0x63801c
call fcn.00468460
mov dword [edi], ecx
mov ebp, dword [ebx + 0x638]
mov dword [edi + 4], ebp
mov dword [ebx + 0x638], ecx
mov ebx, dword [esp + 0xc0]
mov edi, dword [esp + 0xc4]
mov ebp, ecx
mov ecx, edx
mov edx, dword [esp + 0xc8]
mov esi, dword [esp + 0x118]
mov dword [esi + 0x63c], ecx
mov eax, esi
mov esi, dword [esp + 0xcc]
xchg esi, eax
mov byte [ecx + ebp - 4], al
xchg esi, eax
xchg edi, eax
mov byte [ecx + ebp - 3], al
xchg edi, eax
mov byte [ecx + ebp - 2], bl
mov byte [ecx + ebp - 1], dl
movzx edx, byte [eax + 0x634]
add edx, 0xffffffe0
mov byte [eax + 0x634], dl
mov edx, dword [eax + 0x630]
mov dword [eax + 0x62c], edx
mov dword [eax + 0x630], 0
mov edx, dword [esp + 0x120]
mov ebx, dword [esp + 0x5c]
mov ebp, eax
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0x11c]
lea eax, [ebx - 4]
cmp edx, eax
jbe 0x638660
mov dword [esp + 0xbc], eax
lea ecx, [ebx - 3]
movzx eax, byte [edi + ebx - 4]
cmp edx, ecx
jbe 0x638657
mov dword [esp + 0xb8], eax
lea ecx, [ebx - 2]
movzx eax, byte [edi + ebx - 3]
cmp edx, ecx
jbe 0x63864e
mov dword [esp + 0xb4], eax
lea ecx, [ebx - 1]
movzx eax, byte [edi + ebx - 2]
cmp edx, ecx
jbe 0x638645
movzx ebx, byte [edi + ebx - 1]
lea ecx, [esi + ebx*8 + 4]
lea ebx, [esi + ebx*8]
movzx edi, word [esp + 0xfc]
mov word [esp + 0x26], di
movzx edx, di
add edx, dword [ecx]
shr edx, 0x10
mov ecx, edx
and ecx, 0xf
shr di, cl
movzx edi, di
add edi, dword [ebx]
test dl, dl
je 0x6381db
mov dword [esp + 0xb0], eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x6c], edi
mov ebx, dword [esp + 0xec]
lea ecx, [edx - 0x10]
neg ecx
and ecx, 0xf
movzx ebp, word [esp + 0x26]
shl ebp, cl
shr bp, cl
movzx ebp, bp
mov dword [esp + 0xcc], ebp
movzx ecx, byte [ebx + 8]
and ecx, 0x3f
mov byte [esp + 0x23], cl
shl ebp, cl
lea eax, [ecx - 0x20]
mov byte [esp + 0x22], al
mov ecx, eax
mov esi, dword [esp + 0xcc]
shl esi, cl
neg eax
mov ecx, eax
mov edi, dword [esp + 0xcc]
shr edi, cl
movzx edx, byte [esp + 0x22]
cmp dl, 0x20
sbb edx, edx
and edx, esi
movzx esi, byte [esp + 0x23]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb esi, esi
and esi, ebp
cmp al, 0x20
sbb ebp, ebp
and edi, ebp
or edx, edi
or edx, dword [ebx + 4]
or dword [ebx], esi
mov dword [ebx + 4], edx
movzx edx, byte [ebx + 8]
mov ebp, dword [esp + 0x28]
add edx, ebp
mov byte [ebx + 8], dl
mov eax, dword [esp + 0xb0]
mov ebp, dword [esp + 0x118]
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0x6c]
mov ecx, dword [esp + 0xf4]
cmp ecx, edi
jbe 0x63863e
lea edx, [esi + eax*8 + 4]
lea ebx, [esi + eax*8]
mov eax, dword [esp + 0xf0]
movzx edi, word [eax + edi*2]
mov word [esp + 0xfc], di
movzx edi, word [esp + 0x110]
movzx ecx, di
add ecx, dword [edx]
shr ecx, 0x10
mov edx, ecx
and edx, 0xf
mov eax, ecx
mov ecx, edx
mov edx, edi
shr di, cl
movzx edi, di
add edi, dword [ebx]
test al, al
je 0x6382c6
mov dword [esp + 0x68], edi
mov ebx, dword [esp + 0x100]
mov dword [esp + 0xd8], ebx
lea ecx, [eax - 0x10]
neg ecx
and ecx, 0xf
shl edx, cl
shr dx, cl
movzx edx, dx
mov dword [esp + 0xcc], edx
movzx ecx, byte [ebx + 8]
and ecx, 0x3f
mov byte [esp + 0x23], cl
shl edx, cl
lea esi, [ecx - 0x20]
mov ecx, esi
mov ebp, dword [esp + 0xcc]
shl ebp, cl
neg ecx
mov edi, dword [esp + 0xcc]
shr edi, cl
movzx ebx, byte [esp + 0x23]
cmp bl, 0x20
sbb ebx, ebx
and edx, ebx
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb ebx, ebx
and ebp, ebx
cmp cl, 0x20
sbb ebx, ebx
and edi, ebx
or ebp, edi
mov ebx, dword [esp + 0xd8]
or ebp, dword [ebx + 4]
or dword [ebx], edx
mov dword [ebx + 4], ebp
movzx edx, byte [ebx + 8]
add edx, eax
mov byte [ebx + 8], dl
mov ebp, dword [esp + 0x118]
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0x68]
mov ecx, dword [esp + 0x108]
cmp ecx, edi
jbe 0x638637
mov edx, dword [esp + 0x104]
movzx edx, word [edx + edi*2]
mov word [esp + 0x110], dx
nop
cmp byte [ebp + 0x634], 0x20
jb 0x638458
mov edx, dword [ebp + 0x640]
mov dword [esp + 0xb0], edx
mov ebx, dword [ebp + 0x63c]
add ebx, 4
mov dword [esp + 0xac], ebx
mov edi, dword [ebp + 0x62c]
mov dword [esp + 0xcc], edi
mov eax, dword [ebp + 0x630]
mov dword [esp + 0xc8], eax
mov ecx, edi
shr edi, 8
shl eax, 0x18
mov esi, dword [esp + 0xc8]
shl esi, 0x10
shr ecx, 0x10
mov edx, dword [esp + 0xc8]
shl edx, 8
mov ebx, dword [esp + 0xcc]
shr ebx, 0x18
mov ebp, dword [ebp + 0x638]
or edi, eax
or ecx, esi
or ebx, edx
mov edx, dword [esp + 0xb0]
mov esi, dword [esp + 0xac]
cmp edx, esi
jae 0x638401
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc0], edi
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov dword [esp + 0xc], 4
lea eax, [0x6e4500]
mov dword [esp + 0x10], eax
call fcn.0044e230
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x118]
mov dword [ebx + 0x640], eax
mov eax, dword [0x9eca70]
test eax, eax
je 0x6383e2
call fcn.00468460
mov dword [edi], ecx
mov ebp, dword [ebx + 0x638]
mov dword [edi + 4], ebp
mov dword [ebx + 0x638], ecx
mov ebx, dword [esp + 0xc8]
mov edi, dword [esp + 0xc0]
mov esi, edx
mov ebp, ecx
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0x118]
mov dword [edx + 0x63c], esi
mov eax, edx
mov edx, dword [esp + 0xcc]
mov byte [esi + ebp - 4], dl
xchg edi, eax
mov byte [esi + ebp - 3], al
xchg edi, eax
mov byte [esi + ebp - 2], cl
mov byte [esi + ebp - 1], bl
movzx edx, byte [eax + 0x634]
add edx, 0xffffffe0
mov byte [eax + 0x634], dl
mov edx, dword [eax + 0x630]
mov dword [eax + 0x62c], edx
mov dword [eax + 0x630], 0
mov ebp, eax
mov esi, dword [esp + 0xe8]
mov edx, dword [esp + 0xb4]
lea ebx, [esi + edx*8 + 4]
lea edx, [esi + edx*8]
movzx edi, word [esp + 0xfc]
movzx ecx, di
add ecx, dword [ebx]
shr ecx, 0x10
mov ebx, ecx
and ebx, 0xf
mov eax, ecx
mov ecx, ebx
mov ebx, edi
shr di, cl
movzx edi, di
add edi, dword [edx]
test al, al
je 0x638528
mov dword [esp + 0x64], edi
mov edx, dword [esp + 0xec]
mov dword [esp + 0xd4], edx
lea ecx, [eax - 0x10]
neg ecx
and ecx, 0xf
shl ebx, cl
shr bx, cl
movzx ebx, bx
mov dword [esp + 0xcc], ebx
movzx ecx, byte [edx + 8]
and ecx, 0x3f
mov byte [esp + 0x23], cl
shl ebx, cl
lea ebp, [ecx - 0x20]
mov ecx, ebp
mov esi, dword [esp + 0xcc]
shl esi, cl
neg ecx
mov edi, dword [esp + 0xcc]
shr edi, cl
movzx edx, byte [esp + 0x23]
cmp dl, 0x20
sbb edx, edx
and ebx, edx
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb edx, edx
and esi, edx
cmp cl, 0x20
sbb edx, edx
and edi, edx
or edi, esi
mov edx, dword [esp + 0xd4]
or edi, dword [edx + 4]
or dword [edx], ebx
mov dword [edx + 4], edi
movzx ebx, byte [edx + 8]
add ebx, eax
mov byte [edx + 8], bl
mov ebp, dword [esp + 0x118]
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0x64]
mov ecx, dword [esp + 0xf4]
cmp ecx, edi
jbe 0x638630
mov edx, dword [esp + 0xb8]
lea ebx, [esi + edx*8 + 4]
lea edx, [esi + edx*8]
mov eax, dword [esp + 0xf0]
movzx edi, word [eax + edi*2]
mov word [esp + 0xfc], di
movzx edi, word [esp + 0x110]
movzx ecx, di
add ecx, dword [ebx]
shr ecx, 0x10
mov ebx, ecx
and ebx, 0xf
mov eax, ecx
mov ecx, ebx
mov ebx, edi
shr di, cl
movzx edi, di
add edi, dword [edx]
test al, al
je 0x63861a
mov dword [esp + 0x60], edi
mov edx, dword [esp + 0x100]
mov dword [esp + 0xd0], edx
lea ecx, [eax - 0x10]
neg ecx
and ecx, 0xf
shl ebx, cl
shr bx, cl
movzx ebx, bx
mov dword [esp + 0xcc], ebx
movzx ecx, byte [edx + 8]
and ecx, 0x3f
mov byte [esp + 0x23], cl
shl ebx, cl
lea esi, [ecx - 0x20]
mov ecx, esi
mov ebp, dword [esp + 0xcc]
shl ebp, cl
neg ecx
mov edi, dword [esp + 0xcc]
shr edi, cl
movzx edx, byte [esp + 0x23]
cmp dl, 0x20
sbb edx, edx
and edx, ebx
cmp cl, 0x20
sbb ebx, ebx
and edi, ebx
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb ebx, ebx
and ebx, ebp
or edi, ebx
mov ebx, dword [esp + 0xd0]
or edi, dword [ebx + 4]
or dword [ebx], edx
mov dword [ebx + 4], edi
movzx edx, byte [ebx + 8]
add edx, eax
mov byte [ebx + 8], dl
mov ebp, dword [esp + 0x118]
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0x60]
mov ecx, dword [esp + 0x108]
cmp ecx, edi
ja 0x637ee8
mov eax, edi
call fcn.004684c0
mov eax, edi
call fcn.004684c0
mov eax, edi
call fcn.004684c0
mov eax, edi
call fcn.004684c0
mov eax, ecx
mov ecx, edx
call fcn.004684c0
mov eax, ecx
mov ecx, edx
call fcn.004684c0
mov eax, ecx
mov ecx, edx
call fcn.004684c0
mov ecx, edx
call fcn.004684c0
mov eax, dword [esp + 0x104]
movzx eax, word [eax + edx*2]
mov word [esp + 0x110], ax
mov edx, dword [esp + 0x120]
mov edi, dword [esp + 0x11c]
mov ebp, dword [esp + 0x118]
mov ebx, dword [esp + 0xbc]
cmp ebx, 4
jl 0x637cab
nop
cmp byte [ebp + 0x634], 0x20
jb 0x63882c
mov dword [esp + 0x5c], ebx
mov eax, dword [ebp + 0x640]
mov ecx, dword [ebp + 0x63c]
add ecx, 4
mov esi, dword [ebp + 0x62c]
mov dword [esp + 0xcc], esi
shr esi, 8
mov edi, dword [esp + 0xcc]
shr edi, 0x10
mov edx, dword [ebp + 0x630]
mov dword [esp + 0xc8], edx
shl edx, 0x18
mov ebx, dword [esp + 0xc8]
shl ebx, 0x10
mov dword [esp + 0xc4], ebx
mov ebx, dword [esp + 0xc8]
shl ebx, 8
mov dword [esp + 0xc8], ebx
mov ebx, dword [esp + 0xcc]
shr ebx, 0x18
mov ebp, dword [ebp + 0x638]
or esi, edx
mov edx, dword [esp + 0xc4]
or edx, edi
mov edi, dword [esp + 0xc8]
or ebx, edi
cmp eax, ecx
jae 0x6387c1
mov dword [esp + 0xc8], edx
mov dword [esp + 0xc4], esi
mov dword [esp + 0xc0], ebx
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 4
lea eax, [0x6e4500]
mov dword [esp + 0x10], eax
call fcn.0044e230
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x118]
mov dword [ebx + 0x640], eax
mov eax, dword [0x9eca70]
test eax, eax
je 0x6387a2
call fcn.00468460
mov dword [edi], ecx
mov ebp, dword [ebx + 0x638]
mov dword [edi + 4], ebp
mov dword [ebx + 0x638], ecx
mov ebx, dword [esp + 0xc0]
mov esi, dword [esp + 0xc4]
mov ebp, ecx
mov ecx, edx
mov edx, dword [esp + 0xc8]
mov edi, dword [esp + 0x118]
mov dword [edi + 0x63c], ecx
mov eax, edi
mov edi, dword [esp + 0xcc]
xchg edi, eax
mov byte [ecx + ebp - 4], al
xchg edi, eax
xchg esi, eax
mov byte [ecx + ebp - 3], al
xchg esi, eax
mov byte [ecx + ebp - 2], dl
mov byte [ecx + ebp - 1], bl
movzx edx, byte [eax + 0x634]
add edx, 0xffffffe0
mov byte [eax + 0x634], dl
mov edx, dword [eax + 0x630]
mov dword [eax + 0x62c], edx
mov dword [eax + 0x630], 0
mov edx, dword [esp + 0x120]
mov ebx, dword [esp + 0x5c]
mov ebp, eax
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0x11c]
lea eax, [ebx - 4]
cmp edx, eax
jbe 0x638c60
lea ecx, [ebx - 3]
movzx ebp, byte [edi + ebx - 4]
cmp edx, ecx
jbe 0x638c57
mov dword [esp + 0xbc], eax
lea ecx, [ebx - 2]
movzx eax, byte [edi + ebx - 3]
cmp edx, ecx
jbe 0x638c4e
mov dword [esp + 0xb8], ebp
lea ecx, [ebx - 1]
movzx ebp, byte [edi + ebx - 2]
cmp edx, ecx
jbe 0x638c45
mov dword [esp + 0xb4], eax
movzx ebx, byte [edi + ebx - 1]
lea ecx, [esi + ebx*8 + 4]
lea ebx, [esi + ebx*8]
movzx edi, word [esp + 0xfc]
mov word [esp + 0x26], di
movzx edx, di
add edx, dword [ecx]
shr edx, 0x10
mov ecx, edx
and ecx, 0xf
shr di, cl
movzx edi, di
add edi, dword [ebx]
test dl, dl
je 0x638959
mov dword [esp + 0xb0], ebp
mov dword [esp + 0x7c], edi
mov ebx, dword [esp + 0xec]
lea ecx, [edx - 0x10]
neg ecx
and ecx, 0xf
movzx ebp, word [esp + 0x26]
shl ebp, cl
shr bp, cl
movzx ebp, bp
mov dword [esp + 0xcc], ebp
movzx ecx, byte [ebx + 8]
and ecx, 0x3f
mov byte [esp + 0x23], cl
shl ebp, cl
lea eax, [ecx - 0x20]
mov byte [esp + 0x22], al
mov ecx, eax
mov esi, dword [esp + 0xcc]
shl esi, cl
neg eax
mov ecx, eax
mov edi, dword [esp + 0xcc]
shr edi, cl
cmp al, 0x20
sbb eax, eax
and edi, eax
mov eax, edx
movzx edx, byte [esp + 0x22]
cmp dl, 0x20
sbb edx, edx
and edx, esi
or edi, edx
or edi, dword [ebx + 4]
movzx edx, byte [esp + 0x23]
cmp dl, 0x20
sbb edx, edx
and ebp, edx
or dword [ebx], ebp
mov dword [ebx + 4], edi
movzx edx, byte [ebx + 8]
add edx, eax
mov byte [ebx + 8], dl
mov eax, dword [esp + 0xb4]
mov ebp, dword [esp + 0xb0]
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0x7c]
mov ecx, dword [esp + 0xf4]
cmp ecx, edi
jbe 0x638c3e
lea edx, [esi + ebp*8 + 4]
lea ebx, [esi + ebp*8]
mov ebp, dword [esp + 0xf0]
movzx ebp, word [ebp + edi*2]
mov word [esp + 0xfc], bp
movzx ebp, word [esp + 0x110]
movzx ecx, bp
add ecx, dword [edx]
shr ecx, 0x10
mov edx, ecx
and edx, 0xf
mov edi, ecx
mov ecx, edx
mov edx, ebp
shr bp, cl
movzx ebp, bp
add ebp, dword [ebx]
xchg edi, eax
test al, al
xchg edi, eax
je 0x638a54
mov dword [esp + 0xcc], edi
mov dword [esp + 0x78], ebp
mov ebx, dword [esp + 0x100]
lea ecx, [edi - 0x10]
neg ecx
and ecx, 0xf
shl edx, cl
shr dx, cl
movzx edx, dx
mov dword [esp + 0xc8], edx
movzx ecx, byte [ebx + 8]
and ecx, 0x3f
mov byte [esp + 0x23], cl
shl edx, cl
lea eax, [ecx - 0x20]
mov byte [esp + 0x22], al
mov ecx, eax
mov esi, dword [esp + 0xc8]
shl esi, cl
neg eax
mov ecx, eax
mov ebp, dword [esp + 0xc8]
shr ebp, cl
movzx edi, byte [esp + 0x22]
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb edi, edi
and esi, edi
cmp al, 0x20
sbb edi, edi
and ebp, edi
or esi, ebp
or esi, dword [ebx + 4]
movzx ebp, byte [esp + 0x23]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
sbb ebp, ebp
and ebp, edx
or dword [ebx], ebp
mov dword [ebx + 4], esi
movzx edx, byte [ebx + 8]
mov ebp, dword [esp + 0xcc]
add edx, ebp
mov byte [ebx + 8], dl
mov eax, dword [esp + 0xb4]
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0xe8]
mov ecx, dword [esp + 0x108]
cmp ecx, ebp
jbe 0x638c37
lea edx, [esi + eax*8 + 4]
lea ebx, [esi + eax*8]
mov edi, dword [esp + 0x104]
movzx ebp, word [edi + ebp*2]
mov word [esp + 0x110], bp
movzx ebp, word [esp + 0xfc]
movzx ecx, bp
add ecx, dword [edx]
shr ecx, 0x10
mov edx, ecx
and edx, 0xf
mov eax, ecx
mov ecx, edx
mov edi, ebp
shr bp, cl
movzx edx, bp
add edx, dword [ebx]
test al, al
je 0x638b33
mov dword [esp + 0x74], edx
mov ebx, dword [esp + 0xec]
mov dword [esp + 0xe0], ebx
lea ecx, [eax - 0x10]
neg ecx
and ecx, 0xf
shl edi, cl
shr di, cl
movzx ebp, di
mov dword [esp + 0xcc], ebp
movzx ecx, byte [ebx + 8]
and ecx, 0x3f
mov byte [esp + 0x23], cl
mov edi, ebp
shl ebp, cl
lea esi, [ecx - 0x20]
mov ecx, esi
shl edi, cl
neg ecx
mov edx, dword [esp + 0xcc]
shr edx, cl
movzx ebx, byte [esp + 0x23]
cmp bl, 0x20
sbb ebx, ebx
and ebx, ebp
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb ebp, ebp
and edi, ebp
cmp cl, 0x20
sbb ebp, ebp
and edx, ebp
or edi, edx
mov edx, dword [esp + 0xe0]
or edi, dword [edx + 4]
or dword [edx], ebx
mov dword [edx + 4], edi
movzx ebx, byte [edx + 8]
add ebx, eax
mov byte [edx + 8], bl
mov edx, dword [esp + 0x74]
mov esi, dword [esp + 0xe8]
mov ecx, dword [esp + 0xf4]
cmp ecx, edx
jbe 0x638c30
mov ebx, dword [esp + 0xb8]
lea ebp, [esi + ebx*8 + 4]
lea ebx, [esi + ebx*8]
mov edi, dword [esp + 0xf0]
movzx edx, word [edi + edx*2]
mov word [esp + 0xfc], dx
movzx edx, word [esp + 0x110]
movzx ecx, dx
add ecx, dword [ebp]
shr ecx, 0x10
mov ebp, ecx
and ebp, 0xf
mov eax, ecx
mov ecx, ebp
mov edi, edx
shr dx, cl
movzx edx, dx
add edx, dword [ebx]
test al, al
je 0x638c1a
mov dword [esp + 0x70], edx
mov ebx, dword [esp + 0x100]
mov dword [esp + 0xdc], ebx
lea ecx, [eax - 0x10]
neg ecx
and ecx, 0xf
shl edi, cl
shr di, cl
movzx ebp, di
mov dword [esp + 0xcc], ebp
movzx ecx, byte [ebx + 8]
and ecx, 0x3f
mov byte [esp + 0x23], cl
mov edi, ebp
shl ebp, cl
lea esi, [ecx - 0x20]
mov ecx, esi
shl edi, cl
neg ecx
mov edx, dword [esp + 0xcc]
shr edx, cl
movzx ebx, byte [esp + 0x23]
cmp bl, 0x20
sbb ebx, ebx
and ebp, ebx
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb ebx, ebx
and ebx, edi
cmp cl, 0x20
sbb esi, esi
and edx, esi
or ebx, edx
mov edx, dword [esp + 0xdc]
or ebx, dword [edx + 4]
or dword [edx], ebp
mov dword [edx + 4], ebx
movzx ebx, byte [edx + 8]
add ebx, eax
mov byte [edx + 8], bl
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0xe8]
mov ecx, dword [esp + 0x108]
cmp ecx, edx
ja 0x638667
mov eax, edx
call fcn.004684c0
mov eax, edx
call fcn.004684c0
mov eax, ebp
call fcn.004684c0
mov eax, edi
call fcn.004684c0
mov eax, ecx
mov ecx, edx
call fcn.004684c0
mov eax, ecx
mov ecx, edx
call fcn.004684c0
mov eax, ecx
mov ecx, edx
call fcn.004684c0
mov ecx, edx
call fcn.004684c0
mov ecx, dword [esp + 0x104]
movzx eax, word [ecx + eax*2]
mov word [esp + 0x110], ax
mov edi, dword [esp + 0x11c]
mov edx, dword [esp + 0x120]
mov esi, dword [esp + 0xe8]
mov ebp, dword [esp + 0x118]
mov ebx, dword [esp + 0xbc]
cmp ebx, 4
jl 0x637cab
nop
cmp byte [ebp + 0x634], 0x20
jb 0x638e33
mov dword [esp + 0x5c], ebx
mov eax, dword [ebp + 0x640]
mov ecx, dword [ebp + 0x63c]
add ecx, 4
mov esi, dword [ebp + 0x62c]
mov dword [esp + 0xcc], esi
shr esi, 8
mov edi, dword [ebp + 0x630]
mov dword [esp + 0xc8], edi
shl edi, 0x18
mov edx, dword [esp + 0xcc]
shr edx, 0x10
mov dword [esp + 0xc4], edx
mov ebx, dword [esp + 0xc8]
shl ebx, 0x10
mov edx, dword [esp + 0xc8]
shl edx, 8
mov dword [esp + 0xc8], edx
mov edx, dword [esp + 0xcc]
shr edx, 0x18
mov ebp, dword [ebp + 0x638]
or edi, esi
mov esi, dword [esp + 0xc4]
or ebx, esi
mov esi, dword [esp + 0xc8]
or esi, edx
cmp eax, ecx
jae 0x638dc8
mov dword [esp + 0xc8], ebx
mov dword [esp + 0xc4], edi
mov dword [esp + 0xc0], esi
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 4
lea eax, [0x6e4500]
mov dword [esp + 0x10], eax
call fcn.0044e230
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x118]
mov dword [ebx + 0x640], eax
mov eax, dword [0x9eca70]
test eax, eax
je 0x638da9
call fcn.00468460
mov dword [edi], ecx
mov ebp, dword [ebx + 0x638]
mov dword [edi + 4], ebp
mov dword [ebx + 0x638], ecx
mov ebx, dword [esp + 0xc8]
mov esi, dword [esp + 0xc0]
mov edi, dword [esp + 0xc4]
mov ebp, ecx
mov ecx, edx
mov edx, dword [esp + 0x118]
mov dword [edx + 0x63c], ecx
mov eax, edx
mov edx, dword [esp + 0xcc]
mov byte [ecx + ebp - 4], dl
xchg edi, eax
mov byte [ecx + ebp - 3], al
xchg edi, eax
mov byte [ecx + ebp - 2], bl
xchg esi, eax
mov byte [ecx + ebp - 1], al
xchg esi, eax
movzx edx, byte [eax + 0x634]
add edx, 0xffffffe0
mov byte [eax + 0x634], dl
mov edx, dword [eax + 0x630]
mov dword [eax + 0x62c], edx
mov dword [eax + 0x630], 0
mov edx, dword [esp + 0x120]
mov ebx, dword [esp + 0x5c]
mov ebp, eax
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0x11c]
lea eax, [ebx - 4]
cmp edx, eax
jbe 0x639217
lea ecx, [ebx - 3]
movzx ebp, byte [edi + ebx - 4]
cmp edx, ecx
jbe 0x63920e
mov dword [esp + 0xbc], eax
lea ecx, [ebx - 2]
movzx eax, byte [edi + ebx - 3]
cmp edx, ecx
jbe 0x639205
mov dword [esp + 0xb8], ebp
lea ecx, [ebx - 1]
movzx ebp, byte [edi + ebx - 2]
cmp edx, ecx
jbe 0x6391fc
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb0], ebp
movzx ebx, byte [edi + ebx - 1]
lea ecx, [esi + ebx*8 + 4]
lea ebx, [esi + ebx*8]
mov edi, dword [esp + 0xec]
movzx edx, word [esp + 0xfc]
mov word [esp + 0x24], dx
movzx eax, dx
add eax, dword [ecx]
shr eax, 0x10
mov dword [esp + 0x48], eax
mov ecx, eax
and ecx, 0xf
shr dx, cl
movzx edx, dx
add edx, dword [ebx]
mov dword [esp + 0x9c], edx
and eax, 0x1f
lea ebp, [0x975980]
movzx eax, word [ebp + eax*2]
movzx ebp, word [esp + 0x24]
and eax, ebp
movzx ebp, ax
mov dword [esp + 0xcc], ebp
movzx eax, byte [edi + 8]
and eax, 0x3f
mov ecx, eax
shl ebp, cl
lea esi, [eax - 0x20]
mov ecx, esi
mov edx, dword [esp + 0xcc]
shl edx, cl
neg ecx
mov ebx, dword [esp + 0xcc]
shr ebx, cl
xchg esi, eax
cmp al, 0x20
xchg esi, eax
sbb esi, esi
and esi, edx
cmp al, 0x20
sbb edx, edx
and edx, ebp
cmp cl, 0x20
sbb ebp, ebp
and ebx, ebp
or ebx, esi
or ebx, dword [edi + 4]
or dword [edi], edx
mov dword [edi + 4], ebx
movzx edx, byte [edi + 8]
mov ebx, dword [esp + 0x48]
add edx, ebx
mov byte [edi + 8], dl
mov ecx, dword [esp + 0xf4]
mov eax, dword [esp + 0x9c]
cmp ecx, eax
jbe 0x6391f7
mov edx, dword [esp + 0xb0]
mov ebx, dword [esp + 0xe8]
lea ebp, [ebx + edx*8 + 4]
lea edx, [ebx + edx*8]
mov esi, dword [esp + 0xf0]
movzx esi, word [esi + eax*2]
mov word [esp + 0xfc], si
movzx esi, word [esp + 0x110]
movzx ecx, si
add ecx, dword [ebp]
shr ecx, 0x10
mov dword [esp + 0x44], ecx
mov ebp, ecx
and ebp, 0xf
mov eax, ecx
mov ecx, ebp
mov edi, esi
shr si, cl
movzx ebp, si
add ebp, dword [edx]
mov dword [esp + 0x98], ebp
mov edx, dword [esp + 0x100]
and eax, 0x1f
lea ebx, [0x975980]
movzx eax, word [ebx + eax*2]
and eax, edi
movzx edi, ax
mov dword [esp + 0xcc], edi
movzx eax, byte [edx + 8]
and eax, 0x3f
mov ecx, eax
shl edi, cl
lea ebx, [eax - 0x20]
mov ecx, ebx
mov ebp, dword [esp + 0xcc]
shl ebp, cl
neg ecx
mov esi, dword [esp + 0xcc]
shr esi, cl
cmp al, 0x20
sbb eax, eax
and edi, eax
cmp bl, 0x20
sbb ebx, ebx
and ebx, ebp
cmp cl, 0x20
sbb ebp, ebp
and esi, ebp
or esi, ebx
or esi, dword [edx + 4]
or dword [edx], edi
mov dword [edx + 4], esi
movzx ebx, byte [edx + 8]
mov ebp, dword [esp + 0x44]
add ebx, ebp
mov byte [edx + 8], bl
mov ecx, dword [esp + 0x108]
mov eax, dword [esp + 0x98]
cmp ecx, eax
jbe 0x6391f2
mov edx, dword [esp + 0xb4]
mov ebx, dword [esp + 0xe8]
lea ebp, [ebx + edx*8 + 4]
lea edx, [ebx + edx*8]
mov esi, dword [esp + 0x104]
movzx esi, word [esi + eax*2]
mov word [esp + 0x110], si
movzx esi, word [esp + 0xfc]
movzx ecx, si
add ecx, dword [ebp]
shr ecx, 0x10
mov dword [esp + 0x40], ecx
mov ebp, ecx
and ebp, 0xf
mov eax, ecx
mov ecx, ebp
mov edi, esi
shr si, cl
movzx ebp, si
add ebp, dword [edx]
mov dword [esp + 0x94], ebp
mov edx, dword [esp + 0xec]
and eax, 0x1f
lea ebx, [0x975980]
movzx eax, word [ebx + eax*2]
and eax, edi
movzx edi, ax
mov dword [esp + 0xcc], edi
movzx eax, byte [edx + 8]
and eax, 0x3f
mov ecx, eax
shl edi, cl
lea ebx, [eax - 0x20]
mov ecx, ebx
mov ebp, dword [esp + 0xcc]
shl ebp, cl
neg ecx
mov esi, dword [esp + 0xcc]
shr esi, cl
cmp cl, 0x20
sbb ecx, ecx
and esi, ecx
cmp bl, 0x20
sbb ebx, ebx
and ebx, ebp
or esi, ebx
or esi, dword [edx + 4]
cmp al, 0x20
sbb ebx, ebx
and edi, ebx
or dword [edx], edi
mov dword [edx + 4], esi
movzx ebx, byte [edx + 8]
mov ebp, dword [esp + 0x40]
add ebx, ebp
mov byte [edx + 8], bl
mov ecx, dword [esp + 0xf4]
mov eax, dword [esp + 0x94]
cmp ecx, eax
jbe 0x6391ed
mov edx, dword [esp + 0xb8]
mov ebx, dword [esp + 0xe8]
lea ebp, [ebx + edx*8 + 4]
lea edx, [ebx + edx*8]
mov esi, dword [esp + 0xf0]
movzx esi, word [esi + eax*2]
mov word [esp + 0xfc], si
mov esi, dword [esp + 0x100]
movzx edi, word [esp + 0x110]
movzx ecx, di
add ecx, dword [ebp]
shr ecx, 0x10
mov dword [esp + 0x3c], ecx
mov ebp, ecx
and ebp, 0xf
mov eax, ecx
mov ecx, ebp
mov ebp, edi
shr di, cl
movzx edi, di
add edi, dword [edx]
mov dword [esp + 0x90], edi
and eax, 0x1f
lea ebx, [0x975980]
movzx eax, word [ebx + eax*2]
and eax, ebp
movzx ebp, ax
mov dword [esp + 0xcc], ebp
movzx eax, byte [esi + 8]
and eax, 0x3f
mov ecx, eax
shl ebp, cl
lea ebx, [eax - 0x20]
mov ecx, ebx
mov edi, dword [esp + 0xcc]
shl edi, cl
neg ecx
mov edx, dword [esp + 0xcc]
shr edx, cl
cmp cl, 0x20
sbb ecx, ecx
and edx, ecx
cmp al, 0x20
sbb eax, eax
and eax, ebp
cmp bl, 0x20
sbb ebx, ebx
and ebx, edi
or edx, ebx
or edx, dword [esi + 4]
or dword [esi], eax
mov dword [esi + 4], edx
movzx edx, byte [esi + 8]
mov ebx, dword [esp + 0x3c]
add edx, ebx
mov byte [esi + 8], dl
mov ecx, dword [esp + 0x108]
mov eax, dword [esp + 0x90]
cmp ecx, eax
ja 0x638c67
call fcn.004684c0
call fcn.004684c0
call fcn.004684c0
call fcn.004684c0
mov eax, ecx
mov ecx, edx
call fcn.004684c0
mov eax, ecx
mov ecx, edx
call fcn.004684c0
mov eax, ecx
mov ecx, edx
call fcn.004684c0
mov ecx, edx
call fcn.004684c0
mov eax, ebp
call fcn.004684c0
mov ecx, edx
call fcn.004684c0
mov eax, edi
call fcn.004684c0
mov ecx, edx
call fcn.004684c0
mov eax, edi
call fcn.004684c0
mov eax, esi
call fcn.004684c0
mov eax, esi
call fcn.004684c0
mov eax, ebx
call fcn.004684c0
mov eax, esi
call fcn.004684c0
mov ecx, 0x100
call fcn.00468500
nop
call fcn.00467050
jmp fcn.00636ed0