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

Disassembly:
sub esp, 0x650
mov eax, dword [0x10a78b80]
xor eax, esp
mov dword [esp + 0x64c], eax
mov eax, dword [esp + 0x654]
mov dl, byte [esp + 0x664]
mov cl, byte [esp + 0x668]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x660]
push ebx
mov ebx, dword [esp + 0x660]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x670]
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x674]
push ebp
push esi
mov esi, dword [esp + 0x664]
mov dword [esp + 0x128], eax
lea eax, [ebx + ebx*8]
movzx ebp, dl
mov dword [esp + 0xf4], esi
lea esi, [esi + eax*8]
mov byte [esp + 0xfc], dl
push edi
mov eax, ebp
movzx edi, cl
shl eax, 4
add eax, edi
mov dword [esp + 0x108], ebx
mov ebx, dword [esp + 0x100]
push ebx
mov byte [esp + 0x114], cl
lea eax, [eax*8 + 0x107edf00]
mov dword [esp + 0x128], esi
mov dword [esp + 0x12c], eax
mov eax, dword [eax]
mov dword [esp + 0x11c], ebp
mov dword [esp + 0xcc], eax
call fcn.1015a520
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x108]
push dword [esp + 0x114]
mov dword [esp + 0xb8], eax
push ebx
movzx eax, word [ecx + edx*2]
push dword [esp + 0x114]
mov dword [esp + 0xe4], eax
mov eax, dword [esi + 0x44]
mov esi, dword [esp + 0x124]
mov dword [esp + 0xe0], eax
add esi, 0x3ae08
mov eax, dword [esp + 0x108]
add eax, 0xe0
push eax
push esi
call fcn.100c6730
mov dword [esp + 0xe4], eax
add esp, 0x18
mov eax, dword [esp + 0x114]
cmp dword [eax + 0x3edf0], 1
jne 0x1044a437
push dword [esp + 0x110]
mov eax, dword [esp + 0xfc]
push ebx
push dword [esp + 0x110]
add eax, 0xe0
push eax
push esi
call fcn.100c6800
add esp, 0x14
mov dword [esp + 0x48], eax
jmp 0x1044a43f
mov dword [esp + 0x48], 0
mov edx, dword [esp + 0x124]
mov eax, dword [esp + 0x104]
mov esi, dword [esp + 0xf8]
shl eax, 6
mov ecx, dword [edx + 8]
add ecx, eax
mov dword [esp + 0x9c], ecx
lea ebx, [esi + 0xa984]
mov ecx, dword [edx + 4]
add ecx, eax
mov dword [esp + 0xa0], ecx
mov ecx, dword [edx + 0xc]
movzx edx, byte [ebp + 0x1098f184]
add ecx, eax
mov al, byte [edi + 0x1098e734]
mov dword [esp + 0xc4], ecx
movzx ecx, byte [ebp + 0x1098f198]
mov ebp, dword [esp + 0x100]
inc ecx
mov byte [esp + 0xfc], al
add edx, ecx
mov eax, dword [esi + 0x10b0]
push ebp
shr edx, 1
mov esi, dword [eax]
call fcn.1044d6f0
push ebp
mov dword [esp + 0x24], eax
call fcn.1044d7d0
push ebp
mov dword [esp + 0xfc], eax
call fcn.1044d760
mov cl, byte [esi + 0x9f]
add esp, 0xc
mov edi, eax
test cl, cl
js 0x1044a4e6
cmp byte [esi + 0x14], 0
jg 0x1044a4e6
xor esi, esi
jmp 0x1044a4eb
mov esi, 2
xor ecx, ecx
movzx eax, dl
cmp dword [esp + 0x108], ecx
setne cl
lea eax, [ecx + eax*2]
imul ebp, eax, 0xec0
lea edx, [ecx + esi]
mov eax, dword [esp + 0x118]
mov esi, dword [esp + 0xd4]
movsx eax, byte [eax + 0x1098f1ac]
add ebp, ebx
add ebx, 0x9380
mov dword [esp + 0x18], ebp
lea eax, [ecx + eax*2]
imul eax, eax, 0x58
add eax, ebx
mov ebx, dword [esp + 0xf8]
mov dword [esp + 0x10c], eax
mov eax, dword [ebx + 0x1b58]
lea ecx, [eax*2 - 0x10]
mov eax, dword [edx*4 + 0x1098ff80]
shl eax, cl
imul dword [ebx + 0x31cc]
mov ebx, dword [esp + 0x9c]
mov ecx, eax
mov eax, edx
add ecx, 2
adc eax, 0
shrd ecx, eax, 2
sar eax, 2
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], eax
cmp esi, 1
jbe 0x1044a598
lea eax, [esp + 0x13c]
push eax
push edi
push dword [esp + 0xf8]
push ebx
call dword [0x10b48560]
add esp, 0x10
mov eax, dword [esp + 0xf4]
push dword [esp + 0xfc]
push ebp
mov eax, dword [eax]
push dword [esp + 0x114]
push esi
mov ecx, dword [ebp + eax*8]
mov eax, dword [ebp + eax*8 + 4]
mov dword [esp + 0x130], ecx
mov dword [esp + 0x12c], eax
call fcn.1044d530
mov dword [esp + 0x38], eax
lea edi, [esi - 1]
mov eax, dword [esp + 0xd8]
add esp, 0x10
xorps xmm0, xmm0
mov dword [esp + 0x134], 0
movlpd qword [esp + 0xe8], xmm0
mov ebp, 1
mov dword [esp + 0x138], 0
movsx eax, word [eax + edi*2]
mov dword [esp + 0x14], eax
shl eax, 2
mov dword [esp + 0x20], eax
mov ecx, dword [eax + ebx]
mov eax, ecx
cdq
mov esi, eax
shr ecx, 0x1f
mov eax, dword [esp + 0x14]
xor esi, edx
sub esi, edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x130], eax
cmp esi, 2
jl 0x1044a6e0
mov edx, dword [esp + 0x48]
lea eax, [esp + 0x13c]
push edx
push dword [esp + 0xd0]
mov esi, dword [esp + 0x24]
push eax
push dword [esp + 0xac]
mov eax, dword [esp + 0x104]
push ebx
push dword [esp + 0xd8]
push dword [esp + 0x30]
push dword [esp + 0xe4]
push dword [esp + 0xf0]
push dword [eax + 4]
mov eax, dword [esp + 0x124]
push dword [esp + 0xd8]
push dword [esp + 0x60]
push dword [esp + 0x68]
push dword [esp + 0x124]
push esi
push eax
push dword [esp + 0x140]
mov eax, dword [esp + 0x118]
push eax
push edi
lea eax, [esp + 0x134]
push eax
lea eax, [esp + 0x78]
push eax
call fcn.1044d840
mov ecx, dword [esp + 0x140]
add esp, 0x54
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x40], ecx
jmp 0x1044a82e
test edi, edi
jne 0x1044a6e8
xor ecx, ecx
jmp 0x1044a71d
mov ebx, dword [esp + 0xf0]
mov ecx, dword [esp + 0x1c]
shl ebx, cl
mov eax, ebx
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp edi, eax
jg 0x1044a708
mov ecx, ebp
jmp 0x1044a71d
mov eax, ebx
xor ecx, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
cmp edi, eax
setg cl
add ecx, 2
mov eax, dword [esp + 0xfc]
push eax
push dword [esp + 0x20]
mov eax, dword [esp + 0xfc]
push dword [esp + 0x20]
push dword [eax + 4]
push ecx
push dword [esp + 0x24]
push esi
push dword [esp + 0x30]
call fcn.1044d240
mov ecx, dword [esp + 0x40]
mov ebx, eax
mov eax, dword [esp + 0xe4]
add esp, 0x20
mov edx, dword [esp + 0xa0]
add ebx, dword [esp + 0x28]
mov dword [esp + 0x28], ebx
mov esi, dword [ecx + eax]
mov eax, esi
sub eax, dword [ecx + edx]
mov ecx, dword [esp + 0xb0]
shl eax, cl
cdq
mov ecx, eax
mov eax, edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x10], eax
test edx, edx
jne 0x1044a7af
push eax
push ecx
push eax
push ecx
call fcn.10511b50
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x40], eax
shl esi, cl
mov dword [esp + 0x44], edx
mov eax, esi
cdq
push edx
push eax
push edx
push eax
call fcn.10511b50
jmp 0x1044a822
mov eax, dword [esp + 0x14]
push dword [esp + 0x10]
push ecx
movzx eax, byte [eax + edx]
cdq
push edx
push eax
call fcn.10511b50
push edx
push eax
push edx
push eax
call fcn.10511b50
add eax, 0x200
mov ecx, edx
adc ecx, 0
shrd eax, ecx, 0xa
sar ecx, 0xa
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xb0]
shl esi, cl
mov eax, esi
cdq
push edx
mov edx, dword [esp + 0x4c]
mov esi, eax
mov eax, dword [esp + 0x18]
push esi
movzx eax, byte [eax + edx]
cdq
push edx
push eax
call fcn.10511b50
push edx
push eax
push edx
push eax
call fcn.10511b50
add eax, 0x200
adc edx, 0
shrd eax, edx, 0xa
sar edx, 0xa
sub dword [esp + 0x40], eax
mov esi, dword [esp + 0x1c]
sbb dword [esp + 0x44], edx
or eax, 0xffffffff
mov ecx, esi
mov esi, ebp
rol esi, cl
mov ecx, dword [esp + 0xb0]
lea edx, [eax + edi]
mov dword [esp + 0xac], esi
mov eax, ebp
rol eax, cl
movzx ecx, byte [esp + 0xfc]
mov dword [esp + 0x74], eax
mov eax, edx
mov dword [esp + 0xe8], ecx
mov dword [esp + 0x2c], eax
sub ecx, 0
je 0x1044ba10
sub ecx, ebp
je 0x1044b15e
sub ecx, ebp
jne 0x1044c2b7
mov dword [esp + 0x2c], eax
test edx, edx
js 0x1044c2b7
mov dword [esp + 0x2c], edx
nop
cmp ebp, 2
jg 0x1044c3af
mov ecx, dword [esp + 0xf4]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0xc8]
movsx edi, word [ecx + eax*2]
mov ecx, dword [esp + 0xd0]
mov eax, edi
neg eax
mov dword [esp + 0x30], edi
sbb eax, eax
and eax, 2
movsx ecx, word [eax + ecx]
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x5c], ecx
test eax, eax
je 0x1044a8ea
movzx eax, byte [edi + eax]
imul eax, ecx
add eax, 0x10
sar eax, 5
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x9c]
mov esi, edi
mov ecx, dword [esp + 0x1c]
sar esi, cl
lea ecx, [esp + 0x13c]
lea eax, [eax + edi*4]
mov dword [esp + 0x60], eax
mov eax, dword [eax]
mov dword [esp + 0x28], eax
lea eax, [edi + esi*4]
add ecx, eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x98], ecx
movzx eax, byte [eax + ecx + 4]
movzx edx, byte [eax + 0x1098e870]
movzx eax, byte [ecx + 1]
movzx eax, byte [eax + 0x1098e870]
add edx, eax
movzx eax, byte [ecx + 4]
movzx ecx, byte [eax + 0x1098e870]
mov eax, dword [esp + 0x98]
movzx eax, byte [eax + 3]
movzx eax, byte [eax + 0x1098e870]
add ecx, eax
mov eax, dword [esp + 0x98]
movzx eax, byte [eax + 2]
movzx eax, byte [eax + 0x1098e870]
inc eax
add eax, edx
add eax, ecx
mov ecx, dword [esp + 0x1c]
shl esi, cl
mov ecx, edi
shr eax, 1
sub ecx, esi
mov edi, 4
mov dword [esp + 0x68], ecx
cmp eax, edi
cmovb edi, eax
mov eax, dword [esp + 0x28]
add edi, dword [ecx*4 + 0x1098e970]
test eax, eax
jne 0x1044a9af
mov eax, dword [esp + 0x18]
shl edi, 5
add ebx, dword [edi + eax + 0x98]
mov dword [esp + 0x28], ebx
jmp 0x1044b148
mov ecx, dword [esp + 0xc4]
cdq
mov esi, eax
shr dword [esp + 0x28], 0x1f
mov eax, dword [esp + 0x30]
xor esi, edx
sub esi, edx
mov dword [esp + 0xbc], 0
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x54], esi
mov ecx, dword [ecx + eax*4]
mov dword [esp + 0x20], ecx
lea eax, [edx + eax*4]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x74]
imul eax, ecx
cdq
mov dword [esp + 0x24], eax
mov eax, ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x10], edx
sub eax, dword [ecx]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x1044aa54
mov eax, dword [esp + 0x24]
push edx
push eax
push edx
push eax
call fcn.10511b50
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0x30]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x7c]
imul eax, dword [esp + 0x74]
mov dword [esp + 0x4c], edx
cdq
push edx
push eax
push edx
push eax
call fcn.10511b50
mov ecx, eax
mov eax, edx
jmp 0x1044aad7
mov esi, dword [esp + 0x30]
push dword [esp + 0x10]
add esi, eax
push dword [esp + 0x28]
movzx eax, byte [esi]
cdq
push edx
push eax
call fcn.10511b50
push edx
push eax
push edx
push eax
call fcn.10511b50
mov ecx, eax
mov dword [esp + 0x3c], esi
mov eax, edx
add ecx, 0x200
adc eax, 0
shrd ecx, eax, 0xa
sar eax, 0xa
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x7c]
imul eax, dword [esp + 0x74]
mov dword [esp + 0x88], ecx
cdq
mov esi, eax
mov eax, dword [esp + 0x3c]
push edx
push esi
movzx eax, byte [eax]
cdq
push edx
push eax
call fcn.10511b50
push edx
push eax
push edx
push eax
call fcn.10511b50
mov esi, dword [esp + 0x54]
mov ecx, eax
add ecx, 0x200
mov eax, edx
adc eax, 0
shrd ecx, eax, 0xa
sar eax, 0xa
sub ecx, dword [esp + 0x88]
mov dword [esp + 0x90], ecx
sbb eax, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x13c]
push eax
push 2
push dword [esp + 0x24]
push dword [esp + 0x24]
push dword [esp + 0x80]
push edi
push dword [esp + 0x40]
push esi
push dword [esp + 0x50]
push 0
call fcn.1044d340
add esp, 0x28
mov dword [esp + 0x94], eax
add eax, ebx
cdq
push dword [esp + 0x34]
push dword [esp + 0x3c]
push edx
push eax
call fcn.10511b50
mov ecx, dword [esp + 0x90]
add eax, 0x100
adc edx, 0
shrd eax, edx, 9
sar edx, 9
add ecx, dword [esp + 0x40]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x14]
adc eax, dword [esp + 0x44]
shld eax, ecx, 7
shl ecx, 7
add dword [esp + 0x8c], ecx
adc edx, eax
mov dword [esp + 0xb8], edx
cmp esi, 1
jne 0x1044ac00
mov eax, dword [esp + 0x18]
xor edx, edx
push dword [esp + 0x34]
shl edi, 5
xorps xmm0, xmm0
push dword [esp + 0x3c]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x58], edx
mov eax, dword [edi + eax + 0x98]
mov dword [esp + 0xe4], eax
add eax, ebx
mov dword [esp + 0x80], edx
cdq
push edx
push eax
movlpd qword [esp + 0xf0], xmm0
call fcn.10511b50
mov ecx, dword [esp + 0x44]
mov edi, eax
mov eax, dword [esp + 0x40]
add edi, 0x100
adc edx, 0
shld ecx, eax, 7
shrd edi, edx, 9
shl eax, 7
sar edx, 9
add edi, eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x6c], eax
adc edx, ecx
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x5c], eax
jmp 0x1044ad22
lea eax, [esi - 1]
mov ecx, eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x28]
mov edx, eax
mov dword [esp + 0x50], ecx
neg edx
imul ecx, dword [esp + 0x5c]
xor dword [esp + 0x50], edx
add dword [esp + 0x50], eax
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0xb0]
sar dword [esp + 0x78], cl
mov ecx, dword [esp + 0x78]
xor ecx, edx
add ecx, eax
mov eax, dword [esp + 0x20]
sub eax, ecx
mov dword [esp + 0x78], ecx
imul eax, dword [esp + 0x74]
cmp dword [esp + 0x48], 0
cdq
mov ecx, eax
mov eax, edx
mov dword [esp + 0x10], eax
jne 0x1044ac67
push eax
push ecx
push eax
push ecx
call fcn.10511b50
mov ecx, eax
mov eax, edx
jmp 0x1044ac98
mov eax, dword [esp + 0x3c]
push dword [esp + 0x10]
push ecx
movzx eax, byte [eax]
cdq
push edx
push eax
call fcn.10511b50
push edx
push eax
push edx
push eax
call fcn.10511b50
mov ecx, eax
mov eax, edx
add ecx, 0x200
adc eax, 0
shrd ecx, eax, 0xa
sar eax, 0xa
sub ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x64]
sbb eax, dword [esp + 0x4c]
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x13c]
push eax
push 2
push dword [esp + 0x24]
mov dword [esp + 0x68], ecx
push dword [esp + 0x24]
push dword [esp + 0x80]
push edi
push dword [esp + 0x40]
push edx
push dword [esp + 0x50]
push 0
call fcn.1044d340
add esp, 0x28
mov dword [esp + 0xdc], eax
add eax, ebx
cdq
push dword [esp + 0x34]
push dword [esp + 0x3c]
push edx
push eax
call fcn.10511b50
mov ecx, dword [esp + 0x5c]
mov edi, eax
mov eax, dword [esp + 0x6c]
add edi, 0x100
adc edx, 0
shrd edi, edx, 9
sar edx, 9
add ecx, dword [esp + 0x40]
adc eax, dword [esp + 0x44]
shld eax, ecx, 7
shl ecx, 7
add edi, ecx
adc edx, eax
mov dword [esp + 0x88], edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x7c], edx
mov dword [esp + 0xc0], 0
lea eax, [edi + 1]
mov dword [esp + 0xd8], eax
test edi, edi
jne 0x1044ad52
xor eax, eax
mov dword [esp + 0x3c], eax
jmp 0x1044ad96
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0x1c]
shl eax, cl
mov dword [esp + 0x10], eax
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp edi, eax
jg 0x1044ad7b
mov eax, 1
mov dword [esp + 0x3c], eax
jmp 0x1044ad96
mov eax, dword [esp + 0x10]
xor ecx, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
cmp edi, eax
setg cl
add ecx, 2
mov dword [esp + 0x3c], ecx
lea eax, [esp + 0x58]
push eax
push dword [esp + 0xdc]
call fcn.100bd680
mov ecx, dword [esp + 0x114]
add esp, 8
mov ecx, dword [ecx + eax*4 + 0x28]
mov dword [esp + 0x4c], ecx
movzx ecx, word [eax*2 + 0x10894f18]
test cx, cx
jle 0x1044ae05
movsx edi, cx
mov edx, 1
lea ecx, [edi - 1]
shl edx, cl
and edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x4c]
neg edx
sbb edx, edx
and edx, 4
add edx, dword [esp + 0x18]
add ecx, dword [edx + eax*8 + 0x5c0]
mov dword [esp + 0x4c], ecx
cmp edi, 1
jle 0x1044ae05
shl edi, 9
add ecx, 0xfffffe00
add ecx, edi
mov dword [esp + 0x4c], ecx
mov edi, dword [esp + 0x3c]
mov ecx, 3
cmp esi, ecx
cmovl ecx, esi
lea eax, [edi + edi*2]
add ecx, eax
mov eax, dword [esp + 0x18]
mov edx, dword [eax + ecx*4 + 0x64]
test esi, esi
je 0x1044aebb
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x1044ae4c
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x28]
lea eax, [eax + ecx*2]
mov ecx, dword [esp + 0x18]
add edx, dword [ecx + eax*4 + 0x620]
mov eax, dword [esp + 0x30]
jmp 0x1044ae52
add edx, 0x200
cmp esi, 2
jle 0x1044aebb
test eax, eax
jne 0x1044ae65
mov dword [esp + 0x24], 0x18e
jmp 0x1044ae7b
cmp dword [esp + 0x68], 0
mov ecx, 0x2fa
mov eax, 0x244
cmove ecx, eax
mov dword [esp + 0x24], ecx
lea eax, [esi - 3]
mov ecx, 0xc
cmp eax, ecx
cmovl ecx, eax
mov dword [esp + 0x10], ecx
cmp esi, 0xf
jl 0x1044aea2
lea eax, [esi - 0xe]
bsr ecx, eax
shl ecx, 0xa
add ecx, 0x200
jmp 0x1044aea4
xor ecx, ecx
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov eax, dword [esi + eax*4]
mov esi, dword [esp + 0x54]
add eax, ecx
add edx, eax
push dword [esp + 0x34]
mov eax, dword [esp + 0x50]
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x98]
add eax, edx
mov dword [esp + 0xbc], eax
cdq
push edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x20]
push eax
mov dword [esp + 0x4c], ecx
call fcn.10511b50
mov ecx, dword [esp + 0x14]
add eax, 0x100
adc edx, 0
shrd eax, edx, 9
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x90]
shld ecx, eax, 7
sar edx, 9
shl eax, 7
add dword [esp + 0x54], eax
mov eax, dword [esp + 0x64]
adc edx, ecx
mov dword [esp + 0x10], edx
test eax, eax
jle 0x1044afca
push 2
push dword [esp + 0x20]
push dword [esp + 0x20]
push dword [esp + 0x7c]
push edi
push dword [esp + 0x3c]
push eax
push dword [esp + 0x4c]
call fcn.1044d240
add eax, dword [esp + 0x6c]
add esp, 0x20
mov dword [esp + 0x20], eax
cdq
push dword [esp + 0x34]
push dword [esp + 0x3c]
push edx
push eax
call fcn.10511b50
mov ecx, dword [esp + 0x6c]
add eax, 0x100
mov edi, edx
mov edx, dword [esp + 0x10]
adc edi, 0
shrd eax, edi, 9
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x5c]
shld ecx, eax, 7
sar edi, 9
shl eax, 7
add dword [esp + 0x70], eax
adc edi, ecx
cmp edi, edx
jg 0x1044afca
mov eax, dword [esp + 0x70]
jl 0x1044af9e
mov ecx, dword [esp + 0x54]
cmp eax, ecx
jae 0x1044afce
mov ecx, eax
mov dword [esp + 0xc0], 1
mov eax, dword [esp + 0x20]
mov edx, edi
mov edi, dword [esp + 0x6c]
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x24], eax
mov dword [esp + 0x3c], edi
jmp 0x1044afd2
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x6c]
cmp dword [esp + 0x684], 0
je 0x1044afe5
cmp esi, 1
jle 0x1044b0da
mov eax, dword [esp + 0x7c]
cmp eax, dword [esp + 0xb8]
jg 0x1044b035
mov esi, dword [esp + 0x88]
jl 0x1044b004
cmp esi, dword [esp + 0x8c]
jae 0x1044b035
mov dword [esp + 0x8c], esi
mov esi, dword [esp + 0xdc]
mov dword [esp + 0x94], esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0xbc], 1
mov dword [esp + 0x90], esi
mov dword [esp + 0x14], edi
jmp 0x1044b03c
mov eax, dword [esp + 0xb8]
cmp dword [esp + 0x684], 0
jne 0x1044b0da
cmp edx, eax
jg 0x1044b0da
jl 0x1044b05d
cmp ecx, dword [esp + 0x8c]
jae 0x1044b0da
xor esi, esi
test ebp, ebp
jle 0x1044b0a7
mov ecx, dword [esp + 0x1c]
nop word [eax + eax]
mov edx, dword [esp + esi*4 + 0x130]
mov eax, edx
sar eax, cl
inc esi
lea eax, [edx + eax*4]
mov byte [esp + eax + 0x13c], 0
mov eax, dword [esp + 0x9c]
mov dword [eax + edx*4], 0
mov eax, dword [esp + 0xa0]
mov dword [eax + edx*4], 0
cmp esi, ebp
jl 0x1044b070
mov eax, dword [esp + 0xd8]
xor ebp, ebp
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x40], ecx
jmp 0x1044b0f4
mov ecx, dword [esp + 0x90]
add dword [esp + 0x40], ecx
mov eax, dword [esp + 0x14]
adc eax, dword [esp + 0x44]
add ebx, dword [esp + 0x94]
cmp dword [esp + 0xbc], 0
mov esi, dword [esp + 0x60]
mov dword [esp + 0x44], eax
mov dword [esp + 0x28], ebx
je 0x1044b137
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x64]
mov dword [esi], eax
mov eax, dword [esp + 0x78]
mov dword [ecx], eax
mov ecx, 0x7f
movzx eax, dl
cmp edx, ecx
cmovl ecx, eax
mov eax, dword [esp + 0x98]
mov byte [eax], cl
cmp dword [esi], 0
je 0x1044b148
mov eax, dword [esp + 0x30]
mov dword [esp + ebp*4 + 0x130], eax
inc ebp
mov eax, dword [esp + 0x2c]
sub eax, 1
mov dword [esp + 0x2c], eax
jns 0x1044a890
jmp 0x1044c2b7
mov eax, edx
mov dword [esp + 0x2c], eax
test edx, edx
js 0x1044c2b7
mov dword [esp + 0x2c], edx
cmp ebp, 2
jg 0x1044c7c3
mov ecx, dword [esp + 0xf4]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0xc8]
movsx edx, word [ecx + eax*2]
mov ecx, dword [esp + 0xd0]
mov eax, edx
neg eax
mov dword [esp + 0x50], edx
sbb eax, eax
and eax, 2
movsx ecx, word [eax + ecx]
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x94], ecx
test eax, eax
je 0x1044b1d0
movzx eax, byte [edx + eax]
imul eax, ecx
add eax, 0x10
sar eax, 5
mov dword [esp + 0x94], eax
mov ecx, dword [esp + 0x1c]
lea eax, [edx*4]
mov dword [esp + 0x10], eax
mov edi, edx
add eax, dword [esp + 0x9c]
mov dword [esp + 0x20], eax
sar edi, cl
mov eax, dword [eax]
mov dword [esp + 0x6c], eax
lea eax, [edx + edi*4]
lea edx, [esp + 0x13c]
add edx, eax
mov dword [esp + 0x24], edx
movzx eax, byte [esi + edx + 4]
movzx esi, byte [eax + 0x1098e870]
movzx eax, byte [edx + 1]
movzx eax, byte [eax + 0x1098e870]
add esi, eax
mov eax, 4
shl eax, cl
movzx eax, byte [eax + edx + 0x10]
movzx edx, byte [eax + 0x1098e870]
mov eax, 3
shl eax, cl
mov ecx, dword [esp + 0x24]
movzx eax, byte [eax + ecx + 0xc]
mov ecx, dword [esp + 0x1c]
movzx eax, byte [eax + 0x1098e870]
add edx, eax
mov eax, 2
shl eax, cl
inc edx
mov ecx, dword [esp + 0x24]
movzx eax, byte [eax + ecx + 8]
mov ecx, dword [esp + 0x6c]
movzx eax, byte [eax + 0x1098e870]
add eax, esi
mov esi, 4
add eax, edx
shr eax, 1
cmp eax, esi
cmovb esi, eax
add esi, dword [edi*4 + 0x1098e970]
mov dword [esp + 0x84], esi
test ecx, ecx
jne 0x1044b2a2
mov eax, dword [esp + 0x18]
shl esi, 5
add ebx, dword [esi + eax + 0x98]
mov dword [esp + 0x28], ebx
jmp 0x1044b9f3
xor edx, edx
mov eax, ecx
mov dword [esp + 0x68], edx
cdq
xor eax, edx
shr ecx, 0x1f
sub eax, edx
mov dword [esp + 0x6c], ecx
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x10]
mov edi, dword [eax + edx]
add eax, dword [esp + 0xa0]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x58]
imul eax, edi
cdq
mov dword [esp + 0x60], eax
mov eax, edi
sub eax, dword [ecx]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], edx
test eax, eax
jne 0x1044b346
push edx
push ecx
push edx
push ecx
call fcn.10511b50
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0x50]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x74]
imul eax, dword [esp + 0x80]
mov dword [esp + 0xb8], edx
cdq
push edx
push eax
push edx
push eax
call fcn.10511b50
mov ecx, eax
mov eax, edx
jmp 0x1044b3d8
mov esi, dword [esp + 0x50]
push dword [esp + 0x10]
add esi, eax
push dword [esp + 0x64]
movzx eax, byte [esi]
cdq
push edx
push eax
call fcn.10511b50
push edx
push eax
push edx
push eax
call fcn.10511b50
mov ecx, eax
mov dword [esp + 0x98], esi
mov eax, edx
add ecx, 0x200
adc eax, 0
shrd ecx, eax, 0xa
sar eax, 0xa
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x80]
imul eax, dword [esp + 0x74]
mov dword [esp + 0xbc], ecx
cdq
mov esi, eax
mov eax, dword [esp + 0x98]
push edx
push esi
movzx eax, byte [eax]
cdq
push edx
push eax
call fcn.10511b50
push edx
push eax
push edx
push eax
call fcn.10511b50
mov esi, dword [esp + 0x84]
mov ecx, eax
add ecx, 0x200
mov eax, edx
adc eax, 0
shrd ecx, eax, 0xa
sar eax, 0xa
sub ecx, dword [esp + 0xbc]
mov dword [esp + 0x8c], ecx
sbb eax, dword [esp + 0xb8]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x13c]
push eax
push 1
push dword [esp + 0x24]
push dword [esp + 0x24]
push dword [esp + 0x74]
push esi
push dword [esp + 0x84]
push dword [esp + 0xa4]
push dword [esp + 0x70]
push 0
call fcn.1044d340
add esp, 0x28
mov dword [esp + 0x84], eax
add eax, ebx
cdq
push dword [esp + 0x34]
push dword [esp + 0x3c]
push edx
push eax
call fcn.10511b50
mov ecx, dword [esp + 0x40]
add eax, 0x100
adc edx, 0
shrd eax, edx, 9
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
sar edx, 9
add ecx, dword [esp + 0x8c]
adc eax, dword [esp + 0x5c]
shld eax, ecx, 7
shl ecx, 7
add dword [esp + 0x14], ecx
adc edx, eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x7c], edx
cmp eax, 1
jne 0x1044b507
mov eax, dword [esp + 0x18]
xor edx, edx
push dword [esp + 0x34]
shl esi, 5
xorps xmm0, xmm0
push dword [esp + 0x3c]
mov dword [esp + 0x44], edx
mov dword [esp + 0x5c], edx
mov eax, dword [esi + eax + 0x98]
mov dword [esp + 0x88], eax
add eax, ebx
mov dword [esp + 0x54], edx
cdq
push edx
push eax
movlpd qword [esp + 0xf0], xmm0
call fcn.10511b50
mov ecx, dword [esp + 0x44]
mov edi, eax
mov eax, dword [esp + 0x40]
add edi, 0x100
mov esi, edx
mov edx, dword [esp + 0xe4]
adc esi, 0
mov dword [esp + 0x78], edx
shld ecx, eax, 7
shrd edi, esi, 9
shl eax, 7
sar esi, 9
add edi, eax
mov eax, dword [esp + 0xe0]
adc esi, ecx
mov dword [esp + 0x30], eax
jmp 0x1044b627
dec eax
mov ecx, eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x6c]
mov edx, eax
neg edx
mov dword [esp + 0x54], edx
xor dword [esp + 0x54], ecx
imul ecx, dword [esp + 0x94]
add dword [esp + 0x54], eax
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0xb0]
sar dword [esp + 0x4c], cl
mov ecx, dword [esp + 0x4c]
xor ecx, edx
add ecx, eax
sub edi, ecx
mov dword [esp + 0x4c], ecx
imul edi, dword [esp + 0x74]
cmp dword [esp + 0x48], 0
mov eax, edi
cdq
mov edi, edx
mov ecx, eax
push edi
push ecx
jne 0x1044b569
push edi
push ecx
call fcn.10511b50
mov ecx, eax
mov eax, edx
jmp 0x1044b598
mov eax, dword [esp + 0xa0]
movzx eax, byte [eax]
cdq
push edx
push eax
call fcn.10511b50
push edx
push eax
push edx
push eax
call fcn.10511b50
mov ecx, eax
mov eax, edx
add ecx, 0x200
adc eax, 0
shrd ecx, eax, 0xa
sar eax, 0xa
sub ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0x3c]
sbb eax, dword [esp + 0xb8]
mov dword [esp + 0x78], eax
lea eax, [esp + 0x13c]
push eax
push 1
push dword [esp + 0x24]
mov dword [esp + 0x3c], ecx
push dword [esp + 0x24]
push dword [esp + 0x74]
push esi
push dword [esp + 0x84]
push edx
push dword [esp + 0x70]
push 0
call fcn.1044d340
add esp, 0x28
mov dword [esp + 0x80], eax
add eax, ebx
cdq
push dword [esp + 0x34]
push dword [esp + 0x3c]
push edx
push eax
call fcn.10511b50
mov ecx, dword [esp + 0x40]
mov edi, eax
mov eax, dword [esp + 0x44]
add edi, 0x100
mov esi, edx
adc esi, 0
shrd edi, esi, 9
sar esi, 9
add ecx, dword [esp + 0x30]
adc eax, dword [esp + 0x78]
shld eax, ecx, 7
shl ecx, 7
add edi, ecx
adc esi, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xb4], 0
lea ecx, [eax + 1]
mov dword [esp + 0x94], ecx
test eax, eax
jne 0x1044b64a
mov dword [esp + 0x70], eax
jmp 0x1044b691
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0x1c]
shl eax, cl
mov dword [esp + 0x10], eax
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp dword [esp + 0x2c], eax
jg 0x1044b674
mov dword [esp + 0x70], 1
jmp 0x1044b691
mov eax, dword [esp + 0x10]
xor ecx, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
cmp dword [esp + 0x2c], eax
setg cl
add ecx, 2
mov dword [esp + 0x70], ecx
lea eax, [esp + 0xa4]
push eax
push dword [esp + 0x98]
call fcn.100bd680
mov ecx, eax
add esp, 8
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x10], ecx
mov eax, dword [eax + ecx*4 + 0x28]
movzx ecx, word [ecx*2 + 0x10894f18]
mov dword [esp + 0x28], eax
mov dword [esp + 0x60], ecx
test cx, cx
jle 0x1044b715
movsx ecx, cx
mov edx, 1
dec ecx
shl edx, cl
and edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x10]
neg edx
sbb edx, edx
and edx, 4
add edx, dword [esp + 0x18]
add eax, dword [edx + ecx*8 + 0x5c0]
mov edx, dword [esp + 0x60]
movsx ecx, dx
mov dword [esp + 0x28], eax
cmp ecx, 1
jle 0x1044b715
shl ecx, 9
add ecx, 0xfffffe00
add eax, ecx
mov dword [esp + 0x28], eax
push 1
push dword [esp + 0x20]
push dword [esp + 0x20]
push dword [esp + 0x70]
push dword [esp + 0x80]
push dword [esp + 0x80]
push dword [esp + 0xa0]
push dword [esp + 0x6c]
call fcn.1044d240
add eax, dword [esp + 0x48]
add esp, 0x20
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0xdc], eax
cdq
push dword [esp + 0x34]
mov dword [esp + 0xc4], ecx
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x64]
push edx
push eax
mov dword [esp + 0xe8], ecx
call fcn.10511b50
mov ecx, dword [esp + 0x5c]
add eax, 0x100
adc edx, 0
shrd eax, edx, 9
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x8c]
shld ecx, eax, 7
sar edx, 9
shl eax, 7
add dword [esp + 0x90], eax
mov eax, dword [esp + 0x3c]
adc edx, ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x60], edx
test eax, eax
jle 0x1044b892
push 1
push dword [esp + 0x20]
push dword [esp + 0x20]
push dword [esp + 0x70]
push dword [esp + 0x80]
push dword [esp + 0x80]
push eax
push dword [esp + 0x6c]
call fcn.1044d240
add eax, dword [esp + 0x48]
add esp, 0x20
mov dword [esp + 0x10], eax
cdq
push dword [esp + 0x34]
push dword [esp + 0x3c]
push edx
push eax
call fcn.10511b50
mov ecx, eax
mov eax, edx
mov edx, dword [esp + 0x78]
add ecx, 0x100
adc eax, 0
shrd ecx, eax, 9
sar eax, 9
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x64], ecx
mov ecx, edx
shld ecx, eax, 7
shl eax, 7
add dword [esp + 0x64], eax
mov eax, dword [esp + 0x60]
adc dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x98]
cmp ecx, eax
jg 0x1044b896
jl 0x1044b85b
mov edx, dword [esp + 0x90]
cmp dword [esp + 0x64], edx
mov edx, dword [esp + 0x78]
jae 0x1044b896
mov eax, dword [esp + 0x64]
mov dword [esp + 0x90], eax
mov eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xb4], 1
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xd8], edx
jmp 0x1044b89a
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x684], 0
je 0x1044b8b2
cmp dword [esp + 0x88], 1
jle 0x1044b989
cmp esi, dword [esp + 0x7c]
jg 0x1044b8e7
jl 0x1044b8c0
cmp edi, dword [esp + 0x14]
jae 0x1044b8e7
mov edx, dword [esp + 0x80]
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x68], 1
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x5c], edx
jmp 0x1044b8ef
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x7c]
cmp dword [esp + 0x684], 0
jne 0x1044b989
cmp eax, esi
jg 0x1044b989
jl 0x1044b910
cmp dword [esp + 0x90], edi
jae 0x1044b989
xor esi, esi
test ebp, ebp
jle 0x1044b957
mov ecx, dword [esp + 0x1c]
nop word [eax + eax]
mov edx, dword [esp + esi*4 + 0x130]
mov eax, edx
sar eax, cl
inc esi
lea eax, [edx + eax*4]
mov byte [esp + eax + 0x13c], 0
mov eax, dword [esp + 0x9c]
mov dword [eax + edx*4], 0
mov eax, dword [esp + 0xa0]
mov dword [eax + edx*4], 0
cmp esi, ebp
jl 0x1044b920
mov eax, dword [esp + 0x94]
xor ebp, ebp
mov ecx, dword [esp + 0xc0]
mov ebx, dword [esp + 0xdc]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0xd8]
jmp 0x1044b9ab
mov ecx, dword [esp + 0x40]
add ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x68]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x44]
adc ecx, dword [esp + 0x5c]
add ebx, dword [esp + 0x84]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x28], ebx
test eax, eax
je 0x1044b9e2
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x3c]
mov dword [esi], eax
mov eax, dword [esp + 0x4c]
mov dword [ecx], eax
mov ecx, 0x7f
movzx eax, dl
cmp edx, ecx
cmovl ecx, eax
mov eax, dword [esp + 0x24]
mov byte [eax], cl
cmp dword [esi], 0
je 0x1044b9f3
mov eax, dword [esp + 0x50]
mov dword [esp + ebp*4 + 0x130], eax
inc ebp
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0xac]
sub eax, 1
mov dword [esp + 0x2c], eax
jns 0x1044b170
jmp 0x1044c2b7
mov eax, edx
mov dword [esp + 0x2c], eax
test edx, edx
js 0x1044c2b7
mov dword [esp + 0x2c], edx
cmp ebp, 2
jg 0x1044cc18
mov ecx, dword [esp + 0xf4]
mov ecx, dword [ecx + 4]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0xc8]
movsx edi, word [ecx + eax*2]
mov ecx, dword [esp + 0xd0]
mov eax, edi
neg eax
mov dword [esp + 0x30], edi
sbb eax, eax
and eax, 2
movsx ecx, word [eax + ecx]
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x68], ecx
test eax, eax
je 0x1044ba7c
movzx eax, byte [edi + eax]
imul eax, ecx
add eax, 0x10
sar eax, 5
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x1c]
lea eax, [edi*4]
mov dword [esp + 0xa4], eax
lea edx, [esp + 0x13c]
add eax, dword [esp + 0x9c]
mov dword [esp + 0x10], eax
mov esi, dword [eax]
mov eax, edi
sar eax, cl
lea eax, [edi + eax*4]
mov edi, dword [esp + 0xac]
add eax, edx
mov dword [esp + 0x54], eax
movzx eax, byte [eax + 1]
movzx edx, byte [eax + 0x1098e870]
mov eax, dword [esp + 0x54]
movzx eax, byte [eax + edi + 4]
movzx eax, byte [eax + 0x1098e870]
add edx, eax
mov eax, 2
shl eax, cl
mov ecx, dword [esp + 0x54]
movzx eax, byte [eax + ecx + 8]
movzx ecx, byte [eax + 0x1098e870]
mov eax, dword [esp + 0x54]
movzx eax, byte [eax + 2]
movzx eax, byte [eax + 0x1098e870]
add ecx, eax
mov eax, dword [esp + 0x54]
movzx eax, byte [eax + edi + 5]
mov edi, dword [esp + 0x30]
movzx eax, byte [eax + 0x1098e870]
add eax, edx
test edi, edi
je 0x1044bb38
inc ecx
add ecx, eax
mov eax, dword [esp + 0x118]
shr ecx, 1
mov eax, dword [eax*4 + 0x10a72f00]
movsx edi, byte [eax + edi]
mov eax, 4
cmp ecx, eax
cmovb eax, ecx
add edi, eax
test esi, esi
jne 0x1044bb53
mov eax, dword [esp + 0x18]
shl edi, 5
add ebx, dword [edi + eax + 0x98]
mov dword [esp + 0x28], ebx
jmp 0x1044c2a6
mov ecx, dword [esp + 0xc4]
xor edx, edx
mov dword [esp + 0xc0], edx
mov eax, esi
cdq
xor eax, edx
shr esi, 0x1f
sub eax, edx
mov dword [esp + 0xbc], esi
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + ecx]
add eax, dword [esp + 0xa0]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x74]
imul eax, ecx
mov dword [esp + 0x84], ecx
cdq
mov dword [esp + 0x20], eax
mov eax, ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0xa4], edx
sub eax, dword [ecx]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x1044bc01
mov eax, dword [esp + 0x20]
push edx
push eax
push edx
push eax
call fcn.10511b50
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x48]
add eax, dword [esp + 0x30]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x74]
imul eax, dword [esp + 0x58]
mov dword [esp + 0x98], edx
cdq
push edx
push eax
push edx
push eax
call fcn.10511b50
mov ecx, eax
mov eax, edx
jmp 0x1044bc8a
mov esi, dword [esp + 0x30]
push dword [esp + 0xa4]
add esi, eax
push dword [esp + 0x24]
movzx eax, byte [esi]
cdq
push edx
push eax
call fcn.10511b50
push edx
push eax
push edx
push eax
call fcn.10511b50
mov ecx, eax
mov dword [esp + 0x24], esi
mov eax, edx
add ecx, 0x200
adc eax, 0
shrd ecx, eax, 0xa
sar eax, 0xa
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x74]
imul eax, dword [esp + 0x58]
mov dword [esp + 0x7c], ecx
cdq
mov esi, eax
mov eax, dword [esp + 0x24]
push edx
push esi
movzx eax, byte [eax]
cdq
push edx
push eax
call fcn.10511b50
push edx
push eax
push edx
push eax
call fcn.10511b50
mov esi, dword [esp + 0xbc]
mov ecx, eax
add ecx, 0x200
mov eax, edx
adc eax, 0
shrd ecx, eax, 0xa
sar eax, 0xa
sub ecx, dword [esp + 0x7c]
mov dword [esp + 0x8c], ecx
sbb eax, dword [esp + 0x98]
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x13c]
push eax
push 0
push dword [esp + 0x24]
push dword [esp + 0x24]
push dword [esp + 0x4c]
push edi
push esi
push dword [esp + 0x8c]
push dword [esp + 0x50]
push 0
call fcn.1044d340
add esp, 0x28
mov dword [esp + 0xb4], eax
add eax, ebx
cdq
push dword [esp + 0x34]
push dword [esp + 0x3c]
push edx
push eax
call fcn.10511b50
mov ecx, dword [esp + 0x8c]
add eax, 0x100
adc edx, 0
shrd eax, edx, 9
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x5c]
sar edx, 9
add ecx, dword [esp + 0x40]
adc eax, dword [esp + 0x44]
shld eax, ecx, 7
shl ecx, 7
add dword [esp + 0x14], ecx
adc edx, eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0xb8], edx
cmp eax, 1
jne 0x1044bdb3
mov eax, dword [esp + 0x18]
xor edx, edx
push dword [esp + 0x34]
shl edi, 5
xorps xmm0, xmm0
push dword [esp + 0x3c]
mov dword [esp + 0x80], edx
mov dword [esp + 0xe0], edx
mov eax, dword [edi + eax + 0x98]
mov dword [esp + 0x60], eax
add eax, ebx
mov dword [esp + 0x74], edx
cdq
push edx
push eax
movlpd qword [esp + 0xb4], xmm0
call fcn.10511b50
mov ecx, dword [esp + 0x44]
mov edi, eax
mov eax, dword [esp + 0x40]
add edi, 0x100
mov esi, edx
adc esi, 0
shld ecx, eax, 7
shrd edi, esi, 9
shl eax, 7
sar esi, 9
add edi, eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x4c], eax
adc esi, ecx
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x50], eax
jmp 0x1044bec8
dec eax
mov edx, esi
mov ecx, eax
mov dword [esp + 0x78], eax
imul eax, dword [esp + 0x68]
neg edx
xor ecx, edx
add ecx, esi
mov dword [esp + 0xd8], ecx
mov ecx, dword [esp + 0xb0]
sar eax, cl
xor eax, edx
add eax, esi
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x84]
sub eax, dword [esp + 0x6c]
imul eax, dword [esp + 0x74]
cmp dword [esp + 0x48], 0
cdq
mov ecx, eax
mov eax, edx
mov dword [esp + 0xa4], eax
jne 0x1044be11
push eax
push ecx
push eax
push ecx
call fcn.10511b50
mov ecx, eax
mov eax, edx
jmp 0x1044be45
mov eax, dword [esp + 0x24]
push dword [esp + 0xa4]
push ecx
movzx eax, byte [eax]
cdq
push edx
push eax
call fcn.10511b50
push edx
push eax
push edx
push eax
call fcn.10511b50
mov ecx, eax
mov eax, edx
add ecx, 0x200
adc eax, 0
shrd ecx, eax, 0xa
sar eax, 0xa
sub ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
sbb eax, dword [esp + 0x98]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x13c]
push eax
push 0
push dword [esp + 0x24]
mov dword [esp + 0x5c], ecx
push dword [esp + 0x24]
push dword [esp + 0x4c]
push edi
push esi
push edx
push dword [esp + 0x50]
push 0
call fcn.1044d340
add esp, 0x28
mov dword [esp + 0x58], eax
add eax, ebx
cdq
push dword [esp + 0x34]
push dword [esp + 0x3c]
push edx
push eax
call fcn.10511b50
mov ecx, dword [esp + 0x50]
mov edi, eax
mov eax, dword [esp + 0x4c]
add edi, 0x100
mov esi, edx
adc esi, 0
shrd edi, esi, 9
sar esi, 9
add ecx, dword [esp + 0x40]
adc eax, dword [esp + 0x44]
shld eax, ecx, 7
shl ecx, 7
add edi, ecx
adc esi, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x84], 0
lea ecx, [eax + 1]
mov dword [esp + 0x68], ecx
test eax, eax
jne 0x1044beeb
mov dword [esp + 0x88], eax
jmp 0x1044bf3e
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0x1c]
shl eax, cl
mov dword [esp + 0xa4], eax
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp dword [esp + 0x2c], eax
jg 0x1044bf1b
mov dword [esp + 0x88], 1
jmp 0x1044bf3e
mov eax, dword [esp + 0xa4]
xor ecx, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
cmp dword [esp + 0x2c], eax
setg cl
add ecx, 2
mov dword [esp + 0x88], ecx
lea eax, [esp + 0xe0]
push eax
push dword [esp + 0x6c]
call fcn.100bd680
mov ecx, eax
add esp, 8
mov eax, dword [esp + 0x10c]
mov dword [esp + 0xa4], ecx
mov eax, dword [eax + ecx*4 - 4]
movzx ecx, word [ecx*2 + 0x10894f18]
mov dword [esp + 0x64], eax
mov dword [esp + 0x20], ecx
test cx, cx
jle 0x1044bfc5
movsx ecx, cx
mov edx, 1
dec ecx
shl edx, cl
and edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0xa4]
neg edx
sbb edx, edx
and edx, 4
add edx, dword [esp + 0x18]
add eax, dword [edx + ecx*8 + 0x5c0]
mov edx, dword [esp + 0x20]
movsx ecx, dx
mov dword [esp + 0x64], eax
cmp ecx, 1
jle 0x1044bfc5
shl ecx, 9
add ecx, 0xfffffe00
add eax, ecx
mov dword [esp + 0x64], eax
push 0
push dword [esp + 0x20]
push dword [esp + 0x20]
push dword [esp + 0x48]
push dword [esp + 0x98]
push dword [esp + 0xd0]
push dword [esp + 0x88]
push dword [esp + 0x4c]
call fcn.1044d240
add eax, dword [esp + 0x84]
add esp, 0x20
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x94], eax
cdq
push dword [esp + 0x34]
mov dword [esp + 0x64], ecx
push dword [esp + 0x3c]
mov ecx, dword [esp + 0x64]
push edx
push eax
mov dword [esp + 0x90], ecx
call fcn.10511b50
mov ecx, dword [esp + 0x5c]
add eax, 0x100
adc edx, 0
shrd eax, edx, 9
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x8c]
shld ecx, eax, 7
sar edx, 9
shl eax, 7
add dword [esp + 0x90], eax
mov eax, dword [esp + 0x78]
adc edx, ecx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x20], edx
test eax, eax
jle 0x1044c142
push 0
push dword [esp + 0x20]
push dword [esp + 0x20]
push dword [esp + 0x48]
push dword [esp + 0x98]
push dword [esp + 0xd0]
push eax
push dword [esp + 0x4c]
call fcn.1044d240
add eax, dword [esp + 0x84]
add esp, 0x20
mov dword [esp + 0xa4], eax
cdq
push dword [esp + 0x34]
push dword [esp + 0x3c]
push edx
push eax
call fcn.10511b50
mov ecx, eax
mov eax, edx
mov edx, dword [esp + 0x4c]
add ecx, 0x100
adc eax, 0
shrd ecx, eax, 9
sar eax, 9
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x3c], ecx
mov ecx, edx
shld ecx, eax, 7
shl eax, 7
add dword [esp + 0x3c], eax
mov eax, dword [esp + 0x20]
adc dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x24]
cmp ecx, eax
jg 0x1044c146
jl 0x1044c10b
mov edx, dword [esp + 0x90]
cmp dword [esp + 0x3c], edx
mov edx, dword [esp + 0x4c]
jae 0x1044c146
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x90], eax
mov eax, ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x84], 1
mov dword [esp + 0x60], ecx
mov dword [esp + 0x80], edx
jmp 0x1044c14a
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x50]
cmp dword [esp + 0x684], 0
je 0x1044c15f
cmp dword [esp + 0x70], 1
jle 0x1044c237
cmp esi, dword [esp + 0xb8]
jg 0x1044c197
jl 0x1044c170
cmp edi, dword [esp + 0x14]
jae 0x1044c197
mov edx, dword [esp + 0x58]
mov dword [esp + 0xb4], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0xc0], 1
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x5c], edx
jmp 0x1044c1a2
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0xb8]
cmp dword [esp + 0x684], 0
jne 0x1044c237
cmp eax, esi
jg 0x1044c237
jl 0x1044c1c3
cmp dword [esp + 0x90], edi
jae 0x1044c237
xor esi, esi
test ebp, ebp
jle 0x1044c207
mov ecx, dword [esp + 0x1c]
nop dword [eax]
mov edx, dword [esp + esi*4 + 0x130]
mov eax, edx
sar eax, cl
inc esi
lea eax, [edx + eax*4]
mov byte [esp + eax + 0x13c], 0
mov eax, dword [esp + 0x9c]
mov dword [eax + edx*4], 0
mov eax, dword [esp + 0xa0]
mov dword [eax + edx*4], 0
cmp esi, ebp
jl 0x1044c1d0
mov ecx, dword [esp + 0x60]
xor ebp, ebp
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x44], ecx
jmp 0x1044c25c
mov ecx, dword [esp + 0x8c]
add dword [esp + 0x40], ecx
mov eax, dword [esp + 0x5c]
adc eax, dword [esp + 0x44]
add ebx, dword [esp + 0xb4]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xc0]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x28], ebx
test eax, eax
je 0x1044c295
mov ecx, dword [esp + 0xdc]
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0x78]
mov dword [esi], eax
mov eax, dword [esp + 0x6c]
mov dword [ecx], eax
mov ecx, 0x7f
movzx eax, dl
cmp edx, ecx
cmovl ecx, eax
mov eax, dword [esp + 0x54]
mov byte [eax], cl
cmp dword [esi], 0
je 0x1044c2a6
mov eax, dword [esp + 0x30]
mov dword [esp + ebp*4 + 0x130], eax
inc ebp
mov eax, dword [esp + 0x2c]
sub eax, 1
mov dword [esp + 0x2c], eax
jns 0x1044ba22
cmp eax, 0xffffffff
jne 0x1044c38d
cmp ebp, 2
jg 0x1044c38d
cmp dword [esp + 0x684], 0
jne 0x1044c38d
push dword [esp + 0x34]
mov eax, dword [esp + 0x124]
push dword [esp + 0x3c]
add eax, ebx
cdq
push edx
push eax
call fcn.10511b50
mov ecx, dword [esp + 0x44]
mov edi, eax
mov eax, dword [esp + 0x40]
add edi, 0x100
push dword [esp + 0x34]
mov esi, edx
push dword [esp + 0x3c]
adc esi, 0
shld ecx, eax, 7
shrd edi, esi, 9
shl eax, 7
sar esi, 9
add edi, eax
mov eax, dword [esp + 0x124]
cdq
adc esi, ecx
push edx
push eax
call fcn.10511b50
add eax, 0x100
adc edx, 0
shrd eax, edx, 9
sar edx, 9
cmp edx, esi
jg 0x1044c389
jl 0x1044c347
cmp eax, edi
jae 0x1044c389
xor ecx, ecx
test ebp, ebp
jle 0x1044c37a
mov edx, dword [esp + 0x9c]
mov esi, dword [esp + 0xa0]
nop dword [eax + eax]
mov eax, dword [esp + ecx*4 + 0x130]
inc ecx
mov dword [edx + eax*4], 0
mov dword [esi + eax*4], 0
cmp ecx, ebp
jl 0x1044c360
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xe8]
sub ecx, 0
je 0x1044cc18
sub ecx, 1
je 0x1044c7c3
sub ecx, 1
jne 0x1044d066
cmp eax, 1
jl 0x1044d066
nop dword [eax + eax]
mov ecx, dword [esp + 0xc8]
movsx ebp, word [ecx + eax*2]
mov ecx, dword [esp + 0xd0]
mov eax, ebp
neg eax
mov dword [esp + 0xe0], ebp
sbb eax, eax
and eax, 2
movsx esi, word [eax + ecx]
mov eax, dword [esp + 0xcc]
test eax, eax
je 0x1044c3fe
movzx eax, byte [eax + ebp]
imul esi, eax
add esi, 0x10
sar esi, 5
mov eax, dword [esp + 0x9c]
mov edi, dword [eax + ebp*4]
lea eax, [eax + ebp*4]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x84], eax
mov eax, ebp
sar eax, cl
lea ecx, [esp + 0x13c]
mov dword [esp + 0x10], eax
mov dword [esp + 0xa4], edi
lea eax, [eax*4]
add eax, ebp
add ecx, eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x7c], ecx
movzx eax, byte [eax + ecx + 4]
movzx edx, byte [eax + 0x1098e870]
movzx eax, byte [ecx + 1]
movzx eax, byte [eax + 0x1098e870]
add edx, eax
movzx eax, byte [ecx + 4]
movzx ecx, byte [eax + 0x1098e870]
mov eax, dword [esp + 0x7c]
movzx eax, byte [eax + 3]
movzx eax, byte [eax + 0x1098e870]
add ecx, eax
mov eax, dword [esp + 0x7c]
movzx eax, byte [eax + 2]
movzx eax, byte [eax + 0x1098e870]
inc eax
add edx, eax
mov eax, dword [esp + 0x10]
add edx, ecx
mov ecx, dword [esp + 0x1c]
shl eax, cl
mov ecx, ebp
sub ecx, eax
shr edx, 1
mov dword [esp + 0x24], ecx
mov ecx, 4
mov eax, dword [esp + 0x24]
cmp edx, ecx
cmovb ecx, edx
add ecx, dword [eax*4 + 0x1098e970]
test edi, edi
jne 0x1044c4cb
mov eax, dword [esp + 0x18]
shl ecx, 5
add ebx, dword [ecx + eax + 0x98]
jmp 0x1044c7a8
mov eax, edi
cdq
mov edi, eax
mov eax, dword [esp + 0xc4]
xor edi, edx
sub edi, edx
mov eax, dword [eax + ebp*4]
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xa0]
lea eax, [eax + ebp*4]
mov dword [esp + 0x60], eax
mov eax, dword [eax]
cdq
xor eax, edx
sub eax, edx
lea edx, [ecx*8]
mov ecx, 3
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0x18]
cmp edi, ecx
cmovl ecx, edi
add ecx, edx
mov ecx, dword [eax + ecx*4 + 0x98]
xor eax, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], eax
cmp edi, 3
jg 0x1044c542
lea eax, [edx + edi]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + eax*4 + 0xa8]
mov dword [esp + 0x20], eax
test edi, edi
je 0x1044c5e8
add ecx, 0x200
mov dword [esp + 0x14], ecx
cmp edi, 2
jle 0x1044c5e8
mov eax, dword [esp + 0xac]
add eax, 4
mov edx, eax
imul edx, dword [esp + 0x10]
add edx, dword [esp + 0x24]
add eax, edx
movzx ecx, byte [esp + eax + 0x13c]
movzx eax, byte [esp + edx + 0x13e]
add ecx, eax
movzx eax, byte [esp + edx + 0x13d]
inc eax
add eax, ecx
mov ecx, 6
shr eax, 1
cmp eax, ecx
cmovb ecx, eax
test ebp, ebp
je 0x1044c5b0
cmp dword [esp + 0x24], 0
jne 0x1044c5ad
add ecx, 7
jmp 0x1044c5b0
add ecx, 0xe
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0
push eax
imul eax, ecx, 0x68
mov ecx, dword [esp + 0x1c]
add ecx, 0x638
add eax, ecx
push eax
push edi
call fcn.1044d1c0
mov ecx, dword [esp + 0x20]
add esp, 0xc
add ecx, eax
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
mov edx, ecx
sub edx, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0xe8]
cmp edx, eax
jge 0x1044c606
add ebx, ecx
jmp 0x1044c7a8
sub eax, edx
imul eax, dword [esp + 0x74]
cdq
mov ecx, eax
mov eax, edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0xe8], eax
test edx, edx
jne 0x1044c641
push eax
push ecx
push eax
push ecx
call fcn.10511b50
mov dword [esp + 0x10], eax
mov ebp, edx
mov eax, dword [esp + 0xe0]
add eax, dword [esp + 0x48]
mov dword [esp + 0x20], eax
jmp 0x1044c679
push dword [esp + 0xe8]
lea eax, [edx + ebp]
mov dword [esp + 0x24], eax
movzx eax, byte [eax]
cdq
push ecx
push edx
push eax
call fcn.10511b50
push edx
push eax
push edx
push eax
call fcn.10511b50
add eax, 0x200
mov ebp, edx
adc ebp, 0
shrd eax, ebp, 0xa
mov dword [esp + 0x10], eax
sar ebp, 0xa
push dword [esp + 0x34]
mov eax, dword [esp + 0x18]
push dword [esp + 0x3c]
cdq
push edx
push eax
call fcn.10511b50
add eax, 0x100
mov ecx, edx
adc ecx, 0
shrd eax, ecx, 9
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x10]
shld ebp, eax, 7
sar ecx, 9
shl eax, 7
add dword [esp + 0x24], eax
lea eax, [edi - 1]
mov dword [esp + 0x10], eax
adc ecx, ebp
imul esi, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0xe8], ecx
mov ecx, dword [esp + 0xb0]
sar esi, cl
sub eax, esi
imul eax, dword [esp + 0x74]
cmp dword [esp + 0x48], 0
cdq
mov edi, edx
mov ecx, eax
push edi
push ecx
jne 0x1044c6f3
push edi
push ecx
call fcn.10511b50
mov edi, eax
mov ebp, edx
jmp 0x1044c71f
mov eax, dword [esp + 0x28]
movzx eax, byte [eax]
cdq
push edx
push eax
call fcn.10511b50
push edx
push eax
push edx
push eax
call fcn.10511b50
mov edi, eax
mov ebp, edx
add edi, 0x200
adc ebp, 0
shrd edi, ebp, 0xa
sar ebp, 0xa
push dword [esp + 0x34]
mov eax, dword [esp + 0x6c]
push dword [esp + 0x3c]
cdq
push edx
push eax
call fcn.10511b50
add eax, 0x100
adc edx, 0
shld ebp, edi, 7
shrd eax, edx, 9
shl edi, 7
sar edx, 9
add eax, edi
adc edx, ebp
cmp edx, dword [esp + 0xe8]
jg 0x1044c7a4
jl 0x1044c75e
cmp eax, dword [esp + 0x24]
jae 0x1044c7a4
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x84]
shr edx, 0x1f
mov ecx, edx
neg ecx
xor eax, ecx
xor esi, ecx
add eax, edx
add esi, edx
mov edx, dword [esp + 0x10]
mov ecx, 0x7f
mov dword [edi], eax
cmp edx, ecx
mov eax, dword [esp + 0x60]
mov dword [eax], esi
movzx eax, dl
cmovl ecx, eax
mov eax, dword [esp + 0x7c]
add ebx, dword [esp + 0x68]
mov byte [eax], cl
jmp 0x1044c7a8
add ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
dec eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], eax
cmp eax, 1
jge 0x1044c3c0
jmp 0x1044d066
cmp eax, 1
jl 0x1044d066
mov esi, dword [esp + 0x1c]
mov edx, 4
mov ecx, esi
shl edx, cl
mov dword [esp + 0xe0], edx
mov edx, 3
shl edx, cl
mov dword [esp + 0xe8], edx
mov edx, 2
shl edx, cl
mov dword [esp + 0xa4], edx
nop dword [eax]
mov ecx, dword [esp + 0xc8]
movsx ebp, word [ecx + eax*2]
mov ecx, dword [esp + 0xd0]
mov eax, ebp
neg eax
mov dword [esp + 0x58], ebp
sbb eax, eax
and eax, 2
movsx ecx, word [eax + ecx]
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x68], ecx
test eax, eax
je 0x1044c843
movzx eax, byte [eax + ebp]
imul eax, ecx
add eax, 0x10
sar eax, 5
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x9c]
mov esi, ebp
mov edi, dword [eax + ebp*4]
lea eax, [eax + ebp*4]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xb4], eax
sar esi, cl
lea ecx, [esp + 0x13c]
mov dword [esp + 0x94], edi
mov dword [esp + 0x10], esi
lea eax, [esi*4]
add eax, ebp
mov ebp, dword [esp + 0xe0]
add ecx, eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x24], ecx
movzx eax, byte [eax + ecx + 4]
movzx edx, byte [eax + 0x1098e870]
movzx eax, byte [ecx + 1]
movzx eax, byte [eax + 0x1098e870]
add edx, eax
mov eax, dword [esp + 0xe8]
movzx eax, byte [ecx + eax + 0xc]
movzx ecx, byte [eax + 0x1098e870]
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + ebp + 0x10]
mov ebp, dword [esp + 0xa4]
movzx eax, byte [eax + 0x1098e870]
add ecx, eax
mov eax, dword [esp + 0x24]
movzx eax, byte [eax + ebp + 8]
mov ebp, dword [esp + 0x58]
movzx eax, byte [eax + 0x1098e870]
inc eax
add eax, edx
add eax, ecx
mov ecx, 4
shr eax, 1
cmp eax, ecx
cmovb ecx, eax
add ecx, dword [esi*4 + 0x1098e970]
test edi, edi
jne 0x1044c916
mov eax, dword [esp + 0x18]
shl ecx, 5
add ebx, dword [ecx + eax + 0x98]
jmp 0x1044cbfd
mov eax, edi
cdq
mov edi, eax
mov eax, dword [esp + 0xc4]
xor edi, edx
sub edi, edx
mov eax, dword [eax + ebp*4]
cdq
mov esi, eax
mov eax, dword [esp + 0xa0]
xor esi, edx
sub esi, edx
mov dword [esp + 0x84], esi
lea eax, [eax + ebp*4]
mov dword [esp + 0xc0], eax
mov eax, dword [eax]
cdq
xor eax, edx
sub eax, edx
lea edx, [ecx*8]
mov ecx, 3
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x18]
cmp edi, ecx
cmovl ecx, edi
add ecx, edx
mov ecx, dword [eax + ecx*4 + 0x98]
xor eax, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], eax
cmp edi, 3
jg 0x1044c995
lea eax, [edx + edi]
mov edx, dword [esp + 0x18]
mov eax, dword [edx + eax*4 + 0xa8]
mov dword [esp + 0x20], eax
test edi, edi
je 0x1044ca4e
add ecx, 0x200
mov dword [esp + 0x14], ecx
cmp edi, 2
jle 0x1044ca4e
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0x10]
add edx, 4
mov ecx, dword [esp + 0x1c]
mov esi, edx
imul esi, eax
shl eax, cl
sub esi, eax
add esi, ebp
lea eax, [esi + edx*2]
movzx ecx, byte [esp + eax + 0x13c]
lea eax, [esi + edx]
movzx eax, byte [esp + eax + 0x13c]
add ecx, eax
movzx eax, byte [esp + esi + 0x13d]
inc eax
add eax, ecx
mov ecx, 6
shr eax, 1
cmp eax, ecx
cmovb ecx, eax
test ebp, ebp
je 0x1044ca0f
cmp dword [esp + 0x10], 0
jne 0x1044ca0c
add ecx, 7
jmp 0x1044ca0f
add ecx, 0xe
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0
push eax
imul eax, ecx, 0x68
mov ecx, dword [esp + 0x1c]
add ecx, 0x638
add eax, ecx
push eax
push edi
call fcn.1044d1c0
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov esi, dword [esp + 0x84]
add ecx, eax
mov eax, dword [esp + 0x20]
add eax, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
mov edx, ecx
sub edx, eax
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x80]
cmp edx, esi
jge 0x1044ca68
add ebx, ecx
jmp 0x1044cbfd
mov eax, esi
sub eax, edx
imul eax, dword [esp + 0x74]
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x48]
push esi
push ecx
test eax, eax
jne 0x1044ca99
push esi
push ecx
call fcn.10511b50
mov ebp, eax
mov esi, edx
mov eax, dword [esp + 0x58]
add eax, dword [esp + 0x48]
mov dword [esp + 0x10], eax
jmp 0x1044cac7
add eax, ebp
mov dword [esp + 0x18], eax
movzx eax, byte [eax]
cdq
push edx
push eax
call fcn.10511b50
push edx
push eax
push edx
push eax
call fcn.10511b50
mov ebp, eax
mov esi, edx
add ebp, 0x200
adc esi, 0
shrd ebp, esi, 0xa
sar esi, 0xa
push dword [esp + 0x34]
mov eax, dword [esp + 0x18]
push dword [esp + 0x3c]
cdq
push edx
push eax
call fcn.10511b50
mov ecx, eax
mov eax, edx
add ecx, 0x100
adc eax, 0
shrd ecx, eax, 9
shld esi, ebp, 7
sar eax, 9
shl ebp, 7
add ecx, ebp
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0xb0]
adc eax, esi
mov dword [esp + 0x58], eax
lea eax, [edi - 1]
imul ebp, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x84]
sar ebp, cl
sub eax, ebp
imul eax, dword [esp + 0x74]
cmp dword [esp + 0x48], 0
cdq
mov esi, edx
mov ecx, eax
push esi
push ecx
jne 0x1044cb45
push esi
push ecx
call fcn.10511b50
mov esi, eax
mov edi, edx
jmp 0x1044cb71
mov eax, dword [esp + 0x18]
movzx eax, byte [eax]
cdq
push edx
push eax
call fcn.10511b50
push edx
push eax
push edx
push eax
call fcn.10511b50
mov esi, eax
mov edi, edx
add esi, 0x200
adc edi, 0
shrd esi, edi, 0xa
sar edi, 0xa
push dword [esp + 0x34]
mov eax, dword [esp + 0x64]
push dword [esp + 0x3c]
cdq
push edx
push eax
call fcn.10511b50
add eax, 0x100
adc edx, 0
shld edi, esi, 7
shrd eax, edx, 9
shl esi, 7
sar edx, 9
add eax, esi
adc edx, edi
cmp edx, dword [esp + 0x58]
jg 0x1044cbf9
jl 0x1044cbb0
cmp eax, dword [esp + 0x80]
jae 0x1044cbf9
mov edx, dword [esp + 0x94]
mov esi, dword [esp + 0xb4]
shr edx, 0x1f
mov ecx, edx
neg ecx
mov eax, ecx
xor ecx, ebp
xor eax, dword [esp + 0x20]
add ecx, edx
add eax, edx
mov edx, dword [esp + 0x20]
mov dword [esi], eax
mov eax, dword [esp + 0xc0]
mov dword [eax], ecx
mov ecx, 0x7f
cmp edx, ecx
movzx eax, dl
cmovl ecx, eax
mov eax, dword [esp + 0x24]
add ebx, dword [esp + 0x60]
mov byte [eax], cl
jmp 0x1044cbfd
add ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
dec eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], eax
cmp eax, 1
jge 0x1044c800
jmp 0x1044d066
cmp eax, 1
jl 0x1044d066
mov esi, dword [esp + 0x1c]
mov edx, 2
mov ecx, esi
shl edx, cl
mov dword [esp + 0xe8], edx
jmp 0x1044cc44
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc8]
movsx edi, word [ecx + eax*2]
mov ecx, dword [esp + 0xd0]
mov eax, edi
neg eax
sbb eax, eax
and eax, 2
movsx ecx, word [eax + ecx]
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x58], ecx
test eax, eax
je 0x1044cc83
movzx eax, byte [edi + eax]
imul eax, ecx
add eax, 0x10
sar eax, 5
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x9c]
mov ecx, esi
mov ebp, dword [eax + edi*4]
lea eax, [eax + edi*4]
mov dword [esp + 0x80], eax
lea esi, [esp + 0x13c]
mov eax, edi
mov dword [esp + 0x60], ebp
sar eax, cl
mov dword [esp + 0x10], eax
lea eax, [edi + eax*4]
add esi, eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0xb4], esi
movzx eax, byte [eax + esi + 4]
movzx edx, byte [eax + 0x1098e870]
movzx eax, byte [esi + 1]
movzx eax, byte [eax + 0x1098e870]
add edx, eax
mov eax, dword [esp + 0xe8]
movzx eax, byte [eax + esi + 8]
movzx ecx, byte [eax + 0x1098e870]
mov eax, dword [esp + 0xac]
movzx eax, byte [eax + esi + 5]
movzx eax, byte [eax + 0x1098e870]
add ecx, eax
movzx eax, byte [esi + 2]
movzx eax, byte [eax + 0x1098e870]
inc eax
test edi, edi
jne 0x1044cd14
xor esi, esi
jmp 0x1044cd38
add eax, edx
add ecx, eax
mov eax, dword [esp + 0x118]
shr ecx, 1
mov eax, dword [eax*4 + 0x10a72f00]
movsx esi, byte [eax + edi]
mov eax, 4
cmp ecx, eax
cmovb eax, ecx
add esi, eax
test ebp, ebp
jne 0x1044cd4f
mov eax, dword [esp + 0x18]
shl esi, 5
add ebx, dword [esi + eax + 0x98]
jmp 0x1044d050
mov eax, ebp
shl esi, 3
cdq
mov ecx, 3
mov ebp, eax
mov eax, dword [esp + 0xc4]
xor ebp, edx
sub ebp, edx
mov eax, dword [eax + edi*4]
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xa0]
lea eax, [eax + edi*4]
mov dword [esp + 0x94], eax
mov eax, dword [eax]
cdq
xor eax, edx
sub eax, edx
cmp ebp, ecx
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x18]
cmovl ecx, ebp
add ecx, esi
xor edx, edx
mov dword [esp + 0x20], edx
mov ecx, dword [eax + ecx*4 + 0x98]
mov dword [esp + 0x14], ecx
cmp ebp, 3
jg 0x1044cdc5
mov edx, dword [esp + 0x18]
lea eax, [esi + ebp]
mov edx, dword [edx + eax*4 + 0xa8]
mov dword [esp + 0x20], edx
test ebp, ebp
je 0x1044ce89
add ecx, 0x200
mov dword [esp + 0x14], ecx
cmp ebp, 2
jle 0x1044ce89
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
shl eax, cl
mov ecx, edi
sub ecx, eax
mov eax, dword [esp + 0xac]
add eax, 4
mov dword [esp + 0xe0], ecx
mov esi, eax
imul esi, dword [esp + 0x10]
add esi, ecx
lea ecx, [esi + eax]
movzx eax, byte [esp + esi + 0x13d]
movzx edx, byte [esp + ecx + 0x13d]
add edx, eax
movzx eax, byte [esp + ecx + 0x13c]
inc edx
mov ecx, 6
add eax, edx
shr eax, 1
cmp eax, ecx
cmovb ecx, eax
test edi, edi
je 0x1044ce51
cmp dword [esp + 0xe0], 2
jge 0x1044ce4e
cmp dword [esp + 0x10], 2
jge 0x1044ce4e
add ecx, 7
jmp 0x1044ce51
add ecx, 0xe
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0
push eax
imul eax, ecx, 0x68
mov ecx, dword [esp + 0x1c]
add ecx, 0x638
add eax, ecx
push eax
push ebp
call fcn.1044d1c0
mov ecx, dword [esp + 0x20]
add esp, 0xc
mov edx, dword [esp + 0x20]
add ecx, eax
add edx, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
mov eax, ecx
sub eax, edx
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x68]
cmp edx, eax
jge 0x1044ceaa
add ebx, ecx
jmp 0x1044d050
sub eax, edx
imul eax, dword [esp + 0x74]
cdq
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x48]
push esi
push ecx
test eax, eax
jne 0x1044cee3
push esi
push ecx
call fcn.10511b50
mov dword [esp + 0xe0], eax
mov esi, edx
mov eax, dword [esp + 0x48]
add eax, edi
mov edi, dword [esp + 0xe0]
mov dword [esp + 0x10], eax
jmp 0x1044cf11
add eax, edi
mov dword [esp + 0x18], eax
movzx eax, byte [eax]
cdq
push edx
push eax
call fcn.10511b50
push edx
push eax
push edx
push eax
call fcn.10511b50
mov edi, eax
mov esi, edx
add edi, 0x200
adc esi, 0
shrd edi, esi, 0xa
sar esi, 0xa
push dword [esp + 0x34]
mov eax, dword [esp + 0x18]
push dword [esp + 0x3c]
cdq
push edx
push eax
call fcn.10511b50
mov ecx, eax
mov eax, edx
add ecx, 0x100
adc eax, 0
shrd ecx, eax, 9
shld esi, edi, 7
sar eax, 9
shl edi, 7
add ecx, edi
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0xb0]
adc eax, esi
mov dword [esp + 0xe0], eax
lea eax, [ebp - 1]
mov ebp, dword [esp + 0x58]
imul ebp, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x68]
sar ebp, cl
sub eax, ebp
imul eax, dword [esp + 0x74]
cmp dword [esp + 0x48], 0
cdq
mov esi, edx
mov ecx, eax
push esi
push ecx
jne 0x1044cf8f
push esi
push ecx
call fcn.10511b50
mov esi, eax
mov edi, edx
jmp 0x1044cfbb
mov eax, dword [esp + 0x18]
movzx eax, byte [eax]
cdq
push edx
push eax
call fcn.10511b50
push edx
push eax
push edx
push eax
call fcn.10511b50
mov esi, eax
mov edi, edx
add esi, 0x200
adc edi, 0
shrd esi, edi, 0xa
sar edi, 0xa
push dword [esp + 0x34]
mov eax, dword [esp + 0x88]
push dword [esp + 0x3c]
cdq
push edx
push eax
call fcn.10511b50
add eax, 0x100
adc edx, 0
shld edi, esi, 7
shrd eax, edx, 9
shl esi, 7
sar edx, 9
add eax, esi
adc edx, edi
cmp edx, dword [esp + 0xe0]
jg 0x1044d04c
jl 0x1044d000
cmp eax, dword [esp + 0xa4]
jae 0x1044d04c
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x80]
shr edx, 0x1f
mov ecx, edx
neg ecx
mov eax, ecx
xor ecx, ebp
xor eax, dword [esp + 0x20]
add ecx, edx
add eax, edx
mov edx, dword [esp + 0x20]
mov dword [esi], eax
mov eax, dword [esp + 0x94]
mov dword [eax], ecx
mov ecx, 0x7f
cmp edx, ecx
movzx eax, dl
cmovl ecx, eax
mov eax, dword [esp + 0xb4]
add ebx, dword [esp + 0x84]
mov byte [eax], cl
jmp 0x1044d050
add ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
dec eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], eax
cmp eax, 1
jge 0x1044cc40
mov edi, dword [esp + 0x9c]
mov esi, dword [esp + 0x100]
mov ebp, dword [esp + 0xd4]
test eax, eax
jne 0x1044d10b
push dword [esp + 0x48]
lea eax, [esp + 0x140]
xorps xmm0, xmm0
push dword [esp + 0xd0]
movlpd qword [esp + 0xf0], xmm0
push eax
push dword [esp + 0xac]
mov eax, dword [esp + 0x104]
push edi
push dword [esp + 0xd8]
push dword [esp + 0x30]
push dword [esp + 0xe4]
push dword [esp + 0xf0]
push dword [eax + 4]
lea eax, [esp + 0x110]
push dword [esp + 0xd8]
push dword [esp + 0x60]
push dword [esp + 0x68]
push dword [esp + 0x124]
push dword [esp + 0x54]
push dword [esp + 0x138]
push esi
push ebp
push 0
push eax
lea eax, [esp + 0x78]
push eax
call fcn.1044d840
mov ebx, dword [esp + 0x7c]
add esp, 0x54
test ebp, ebp
jne 0x1044d11a
mov esi, dword [esp + 0x11c]
add esi, ebx
jmp 0x1044d159
mov eax, dword [esp + 0x114]
mov ecx, dword [esp + 0xf8]
movzx eax, byte [eax + 0x3adb1]
push eax
push dword [esp + 0x114]
lea eax, [ecx + 0xe0]
push esi
push dword [esp + 0x114]
push eax
push ecx
call fcn.1044d5b0
add esp, 0x18
lea esi, [ebx + eax]
add esi, dword [esp + 0x120]
mov ebx, dword [esp + 0x124]
mov eax, dword [esp + 0x104]
mov ecx, dword [ebx + 0x10]
mov word [ecx + eax*2], bp
mov ecx, dword [ebx + 0x10]
movzx ecx, word [ecx + eax*2]
push ecx
push dword [esp + 0x12c]
push edi
call fcn.100bdaa0
mov ecx, dword [ebx + 0x14]
add esp, 0xc
mov edx, dword [esp + 0x104]
pop edi
mov byte [edx + ecx], al
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x658]
mov dword [eax], esi
mov eax, ebp
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.105116c0
add esp, 0x650
ret