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

Disassembly:
endbr32
push ebp
mov ebp, esp
and esp, 0xfffffff0
push esi
push edi
push ebx
sub esp, 0x3d4
xor esi, esi
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x154], eax
mov dword [esp + 0x14c], edx
mov dword [esp + 0x1a4], ecx
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], edx
mov dword [esp + 0x150], ecx
mov ebx, dword [0x10234e38]
xor ebx, esp
mov edi, dword [ebp + 0x14]
mov dword [esp + 0x3d0], ebx
mov dword [esp + 0x240], esi
mov dword [esp + 0x244], esi
mov dword [esp + 0x248], esi
mov dword [esp + 0x24c], esi
mov dword [esp + 0x250], esi
mov dword [esp + 0x254], esi
mov dword [esp + 0x258], esi
mov dword [esp + 0x25c], esi
mov dword [esp + 0x35c], esi
mov dword [esp + 0x260], esi
mov dword [esp + 0x360], esi
mov dword [esp + 0x264], esi
mov dword [esp + 0x364], esi
mov dword [esp + 0x268], esi
mov dword [esp + 0x368], esi
mov dword [esp + 0x26c], esi
mov dword [esp + 0x36c], esi
mov dword [esp + 0x270], esi
mov dword [esp + 0x370], esi
mov dword [esp + 0x274], esi
mov dword [esp + 0x374], esi
mov dword [esp + 0x278], esi
mov dword [esp + 0x378], esi
mov dword [esp + 0x27c], esi
mov dword [esp + 0x37c], esi
mov dword [esp + 0x3cc], esi
mov dword [esp + 0x3c8], esi
mov dword [esp + 0x3c0], esi
mov dword [esp + 0x3c4], esi
mov dword [esp + 0x340], esi
mov dword [esp + 0x344], esi
mov dword [esp + 0x348], esi
mov dword [esp + 0x34c], esi
mov dword [esp + 0x350], esi
mov dword [esp + 0x354], esi
mov dword [esp + 0x358], esi
test edi, 0x8010000
je 0x100504b1
test edi, 0x10000
je 0x100504aa
lea eax, [ebp + 0x2b]
and eax, 0xfffffffc
movsx ecx, byte [eax]
jmp 0x100504b6
mov ecx, 0x2c
jmp 0x100504b6
mov ecx, 0x2e
cmp dword [esp + 0x1a4], 0
jle 0x10054ba2
mov edx, edi
mov eax, edi
and edx, 0x80
and eax, 0x80000000
mov ebx, edx
shl edx, 0x18
mov esi, dword [esp + 0x14c]
and edx, eax
shl ebx, 4
shr edx, 0x13
or ebx, edx
mov dword [esp + 0x148], eax
movsx eax, byte [esi]
test edi, 0x20
je 0x10050548
lea edx, [eax - 9]
cmp edx, 4
ja 0x10054b8d
mov dword [esp + 0x170], ecx
mov ecx, dword [esp + 0x1a4]
mov edx, esi
lea eax, [edx + 1]
mov edx, eax
dec ecx
je 0x10054b5a
movsx eax, byte [eax]
lea esi, [eax - 9]
cmp esi, 4
jbe 0x10050517
cmp eax, 0x20
je 0x10050517
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x14c], edx
mov ecx, dword [esp + 0x170]
mov edx, dword [esp + 0x14c]
mov dword [esp + 0x144], edx
cmp eax, 0x2d
jne 0x10050560
add ebx, 8
jmp 0x10050565
cmp eax, 0x2b
jne 0x1005057c
inc dword [esp + 0x14c]
add ebx, 2
dec dword [esp + 0x1a4]
je 0x100540b9
mov esi, edi
xor eax, eax
and esi, 2
mov dword [esp + 0x60], esi
mov esi, edi
and esi, 0x40
mov dword [esp + 0x94], esi
mov esi, edi
and esi, 1
mov dword [esp + 0x90], esi
mov esi, edi
and esi, 0x10
mov dword [esp + 0x7c], esi
mov esi, edi
and esi, 0x1000
mov dword [esp + 0x104], esi
mov esi, edi
and esi, 0x40000000
mov dword [esp + 0x9c], esi
mov esi, edi
and esi, 8
mov dword [esp + 0x78], esi
mov esi, edi
mov dword [esp + 0x14], eax
and esi, 4
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x12c], eax
mov dword [esp + 0xa0], eax
mov edx, edi
mov dword [esp + 0x74], esi
mov esi, edi
and edx, 0x100
and esi, 0x800
mov dword [esp + 0x100], esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0xdc], 9
mov dword [esp + 0xb8], 5
mov dword [esp + 0xa4], 1
mov dword [esp + 0x98], eax
mov dword [esp + 0x130], edx
mov dword [esp + 0x170], ecx
mov dword [esp + 0x128], edi
mov esi, dword [esp + 0x14c]
movsx edx, byte [esi]
lea eax, [edx - 0x2b]
cmp eax, 0x4d
ja 0x10050906
movzx eax, word [eax*2 + 0x10215a74]
add eax, 0x10050670
notrack jmp eax
cmp edx, 9
jne 0x1005091b
cmp dword [esp + 0x90], 0
jne 0x10050a13
jmp 0x10050935
cmp edx, 0x20
jne 0x10050935
cmp dword [esp + 0x60], 0
jne 0x10050a13
cmp dword [esp + 0x94], 0
jne 0x1005095b
cmp edx, dword [esp + 0x170]
jne 0x100544c3
test bl, 1
jne 0x100544c3
mov dword [esp + 0x2c], 0
or ebx, 1
jmp 0x10050a13
mov edx, 0x30
cmp dword [esp + 0x98], 0
je 0x100509fd
add edx, 0xffffffd0
or ebx, 4
xor eax, eax
mov ecx, ebx
and ecx, 0x201
cmp ecx, 0x200
mov edi, dword [esp + 0x2c]
sete al
neg eax
mov ecx, dword [esp + 0x28]
inc dword [esp + 0x98]
lea eax, [edi + eax + 1]
mov dword [esp + 0x2c], eax
cmp ecx, dword [esp + 0xdc]
je 0x100509c7
mov edi, dword [esp + 0x14]
mov eax, edi
mov ecx, dword [esp + 0xa4]
shl eax, cl
inc dword [esp + 0x28]
lea eax, [eax + edi*8]
add eax, edx
mov dword [esp + 0x14], eax
jmp 0x10050a13
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0xb8]
jae 0x100509f4
mov ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x14], edx
mov dword [esp + ecx*4 + 0x244], eax
inc ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], 1
jmp 0x10050a13
or dword [esp + 0x12c], edx
jmp 0x10050a13
mov eax, ebx
or ebx, 4
and eax, 1
add dword [esp + 0x2c], eax
xor eax, 1
add dword [esp + 0xa0], eax
inc esi
dec dword [esp + 0x1a4]
jne 0x10050651
mov dword [esp + 0x14c], esi
mov eax, dword [esp + 0x98]
mov edi, dword [esp + 0x128]
mov esi, dword [esp + 0x14c]
test bl, 4
jne 0x10050a49
mov esi, dword [esp + 0x144]
test bl, 0x40
je 0x10050a55
mov esi, dword [esp + 0x14c]
test edi, 0x8000
je 0x10050a94
cmp dword [esp + 0x148], 0
je 0x10050a7f
cmp dword [esp + 0x1a4], 0
je 0x10050a94
mov ecx, dword [esp + 0x14c]
cmp byte [ecx], 0
jne 0x10050a89
jmp 0x10050a94
cmp dword [esp + 0x1a4], 0
je 0x10050a94
or ebx, 0x3000000
jmp 0x10053e80
test eax, eax
jne 0x10050ace
mov eax, ebx
and eax, 0xc
cmp eax, 0xc
jne 0x10050aad
xor dword [esp + 0x3cc], 0x80000000
mov eax, edi
mov edx, ebx
and eax, 0x28000
or edx, 0x3000000
cmp eax, 0x28000
jne 0x10053e80
mov ebx, edx
jmp 0x10053e80
test bl, 0x10
je 0x10050b09
cmp edx, 6
ja 0x10053ae7
mov ecx, dword [esp]
mov edx, ecx
neg edx
test ebx, 0x80
jne 0x10050aed
mov edx, ecx
test edi, 0x400
mov ecx, dword [esp + 0x15c]
jne 0x10050b01
mov ecx, 0
sub edx, ecx
mov dword [esp + 4], edx
jmp 0x10050b16
mov ecx, dword [esp + 0x15c]
neg ecx
mov dword [esp + 4], ecx
mov edx, ebx
and edx, 1
test ebx, 0x200
je 0x10050dbf
mov ecx, dword [esp + 0x2c]
neg ecx
add ecx, eax
mov dword [esp + 0x100], ebx
mov ebx, dword [esp + 4]
lea ebx, [ebx + ecx*4]
mov ecx, dword [esp + 0x158]
shl ecx, 2
neg ecx
add ecx, ebx
test edx, edx
je 0x10050b51
mov ecx, ebx
mov dword [esp + 0x158], ecx
mov ecx, dword [esp + 0x28]
shl ecx, 2
neg ecx
shl dword [esp + 0x14], cl
mov ebx, dword [esp + 0x100]
cmp eax, 8
ja 0x10050bb2
mov dword [esp + 8], 0
cmp dword [esp + 0x14], 0
jle 0x10050b97
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 8]
add eax, eax
inc edx
test eax, eax
jg 0x10050b88
mov dword [esp + 0x14], eax
mov dword [esp + 8], edx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x344], eax
mov dword [esp + 0x104], 1
jmp 0x10050da8
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
lea edx, [eax + 1]
mov dword [esp + 0x104], edx
mov dword [esp + edx*4 + 0x240], ecx
test ecx, ecx
jne 0x10050be3
mov eax, edx
dec eax
cmp dword [esp + eax*4 + 0x240], 0
je 0x10050bd1
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x244]
mov dword [esp + 8], 0
test eax, eax
jle 0x10050d26
mov edx, dword [esp + 8]
add eax, eax
inc edx
test eax, eax
jg 0x10050bfe
mov dword [esp + 8], edx
mov dword [esp + 0x244], eax
cmp dword [esp + 8], 0
je 0x10050d26
mov dword [esp + 0x344], eax
cmp dword [esp + 0x104], 1
jbe 0x10050da8
mov eax, dword [esp + 0x104]
lea edx, [eax - 1]
shr edx, 1
je 0x100544dd
mov ecx, dword [esp + 8]
xor eax, eax
neg ecx
mov dword [esp + 0x100], ebx
mov dword [esp + 4], ecx
mov dword [esp], edx
mov dword [esp + 0xa4], esi
mov dword [esp + 0x128], edi
lea esi, [esi]
lea edi, [edi]
mov esi, dword [esp + eax*8 + 0x248]
mov edx, esi
mov edi, dword [esp + 4]
mov ecx, edi
shr edx, cl
mov ebx, dword [esp + 8]
mov ecx, ebx
or dword [esp + eax*8 + 0x344], edx
mov edx, dword [esp + eax*8 + 0x24c]
shl esi, cl
mov ecx, edi
mov edi, edx
shr edi, cl
mov ecx, ebx
shl edx, cl
or esi, edi
mov dword [esp + eax*8 + 0x348], esi
mov dword [esp + eax*8 + 0x34c], edx
inc eax
cmp eax, dword [esp]
jb 0x10050c70
mov ebx, dword [esp + 0x100]
lea eax, [eax + eax + 1]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
mov dword [esp], eax
mov eax, dword [esp]
mov edx, dword [esp + 0x104]
lea ecx, [eax - 1]
lea eax, [edx - 1]
cmp ecx, eax
jae 0x10050da8
mov edx, dword [esp]
mov ecx, dword [esp + 8]
mov dword [esp + 0x100], ebx
neg ecx
mov eax, dword [esp + edx*4 + 0x244]
mov ebx, eax
shr ebx, cl
mov ecx, dword [esp + 8]
or dword [esp + edx*4 + 0x340], ebx
shl eax, cl
mov dword [esp + edx*4 + 0x344], eax
mov ebx, dword [esp + 0x100]
jmp 0x10050da8
cmp dword [esp + 0x104], 0
je 0x10050da8
cmp dword [esp + 0x104], 0x18
jle 0x100544e9
mov dword [esp + 0x100], ebx
lea eax, [esp + 0x240]
mov ebx, dword [eax - 0x13c]
lea ecx, [esp + 0x340]
sub ecx, eax
lea edx, [ebx*4]
xor ebx, ebx
xor eax, eax
cmp ecx, edx
setg al
neg ecx
cmp ecx, edx
setg bl
or eax, ebx
mov ebx, dword [esp + 0x100]
je 0x100544e9
mov eax, dword [esp + 0x104]
lea ecx, [esp + 0x244]
lea edx, [eax*4]
lea eax, [esp + 0x344]
push edx
push ecx
push eax
call fcn.10061710
add esp, 0xc
mov eax, dword [esp + 0x158]
sub eax, dword [esp + 8]
mov dword [esp + 0x158], eax
jmp 0x100536af
test edx, edx
je 0x10050dcd
mov ecx, dword [esp + 0x2c]
sub dword [esp + 4], ecx
jmp 0x10050ddc
mov ecx, dword [esp + 4]
sub ecx, dword [esp + 0x158]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
add ecx, eax
cmp ecx, 0xffffec9b
jl 0x10053ae7
cmp ecx, 0x1345
jg 0x10053ae7
lea ecx, [eax - 0x36]
test ecx, ecx
mov ecx, dword [esp + 4]
lea edx, [ecx + eax - 0x36]
jg 0x10050e0b
mov edx, ecx
mov dword [esp + 0xa0], edx
cmp eax, 9
ja 0x10053f16
mov dword [esp + 0x158], 0
cmp dword [esp + 0x14], 0
jle 0x10050e4a
mov eax, dword [esp + 0x158]
mov edx, dword [esp + 0x14]
add edx, edx
inc eax
test edx, edx
jg 0x10050e38
mov dword [esp + 0x158], eax
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x158]
neg edx
mov eax, dword [esp + 0x14]
add edx, 0x20
mov dword [esp + 0x344], eax
mov dword [esp + 0x158], edx
mov dword [esp + 0x104], 1
cmp dword [esp + 0xa0], 0
je 0x100536af
xor eax, eax
mov dword [esp + 0x380], eax
mov dword [esp + 0x38c], eax
mov dword [esp + 0x390], eax
mov dword [esp + 0x394], eax
mov dword [esp + 0x398], eax
mov dword [esp + 0x39c], eax
mov dword [esp + 0x3a0], eax
mov dword [esp + 0x3a4], eax
mov dword [esp + 0x3a8], eax
mov dword [esp + 0x3ac], eax
mov dword [esp + 0x3b0], eax
mov dword [esp + 0x3b4], eax
mov dword [esp + 0x3b8], eax
mov dword [esp + 0x3bc], eax
cmp dword [esp + 0x104], 4
jb 0x10050fd3
mov eax, dword [esp + 0x354]
shr eax, 0x1f
mov edx, dword [esp + 0x350]
add edx, eax
mov dword [esp + 0x350], edx
cmp edx, eax
jae 0x10050fa2
mov eax, 3
mov dword [esp + 0x340], 0
mov dword [esp + 0x104], eax
cmp dword [esp + 0x34c], 0xffffffff
je 0x10050f47
lea eax, [esp + 0x34c]
mov dword [eax - 0x2bc], eax
mov eax, dword [eax]
jmp 0x10050f70
mov edx, eax
dec edx
lea ecx, [esp + edx*4 + 0x340]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x10050f49
mov dword [esp + 0x104], edx
mov dword [esp + 0x90], ecx
cmp dword [esp + 0x104], 0
je 0x10050f7c
mov edx, dword [esp + 0x90]
inc eax
mov dword [edx], eax
jmp 0x10050fe8
inc dword [esp + 0x158]
lea eax, [esp + 0x344]
mov dword [eax], SysReAllocStringLen
mov dword [eax - 0x240], 1
mov dword [eax - 0x2b4], eax
jmp 0x10050fe8
mov eax, 4
mov dword [esp + 0x104], eax
test edx, edx
jne 0x100545ab
dec eax
lea edx, [esp + eax*4 + 0x340]
cmp dword [edx], 0
je 0x10050fb6
mov dword [esp + 0x104], eax
mov dword [esp + 0x90], edx
jmp 0x10050fe8
mov eax, dword [esp + 0x104]
lea edx, [esp + eax*4 + 0x340]
mov dword [esp + 0x90], edx
xor eax, eax
mov dword [esp + 0x2c0], eax
mov dword [esp + 0x2c4], eax
mov dword [esp + 0x2c8], eax
mov dword [esp + 0x2cc], eax
mov dword [esp + 0x2d0], eax
mov dword [esp + 0x2d4], eax
mov dword [esp + 0x2d8], eax
mov dword [esp + 0x2dc], eax
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x2e4], eax
mov dword [esp + 0x2e8], eax
mov dword [esp + 0x2ec], eax
mov dword [esp + 0x2f0], eax
mov dword [esp + 0x2f4], eax
mov dword [esp + 0x2f8], eax
mov dword [esp + 0x2fc], eax
mov dword [esp + 0x300], eax
mov dword [esp + 0x314], eax
mov dword [esp + 0x318], eax
mov dword [esp + 0x31c], eax
mov dword [esp + 0x320], eax
mov dword [esp + 0x324], eax
mov dword [esp + 0x328], eax
mov dword [esp + 0x32c], eax
mov dword [esp + 0x330], eax
mov dword [esp + 0x334], eax
mov dword [esp + 0x338], eax
mov dword [esp + 0x33c], eax
cmp dword [esp + 0xa0], 0xfffffdea
jge 0x10051734
mov dword [esp + 0x388], eax
mov dword [esp + 0x384], eax
cmp dword [esp + 0xa0], 0xfffff000
jle 0x10051127
mov edx, 0x1000
lea ecx, [esp + 0xdc]
mov dword [ecx], eax
mov dword [esp + 0x100], ebx
mov dword [esp + 0xa4], esi
lea esi, [esp + 0x310]
mov dword [esi], eax
mov dword [esi - 4], eax
mov dword [esi - 8], eax
mov dword [esi - 0xc], eax
mov eax, 3
mov dword [esp + 0x7c], edx
mov dword [esp + 0x128], edi
mov ecx, dword [ecx]
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0xa0]
jmp 0x1005119f
add dword [esp + 0xa0], 0x1000
mov edx, 0x1000
mov dword [esp + 0x100], ebx
mov eax, 3
mov dword [esp + 0x7c], edx
mov dword [esp + 0xa4], esi
mov dword [esp + 0x128], edi
mov ebx, dword [esp + 0xa0]
mov edx, eax
shl edx, 4
movsx esi, word [eax*2 + 0x1021621e]
mov ecx, dword [edx + 0x10215f0c]
mov dword [esp + 0x304], ecx
lea ecx, [edx + 0x10215f08]
mov edi, dword [ecx]
mov ecx, dword [ecx - 4]
mov edx, dword [edx + 0x10215f00]
mov dword [esp + 0x308], edi
lea edi, [esp + 0x30c]
mov dword [edi], ecx
mov ecx, 4
mov dword [edi + 4], edx
mov dword [esp + 0x74], esi
mov edx, dword [esp + 0x7c]
jmp 0x100511b1
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
sar edx, 1
dec eax
js 0x10051703
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x7c]
neg eax
cmp ebx, eax
jg 0x100511a9
add ebx, dword [esp + 0x7c]
test ecx, ecx
je 0x1005172b
mov eax, dword [esp + 0x78]
movsx esi, word [eax*2 + 0x1021621e]
shl eax, 4
mov dword [esp + 0x60], esi
mov edx, dword [eax + 0x10215f0c]
mov edi, dword [eax + 0x10215f08]
mov dword [esp + 0x2c4], edx
mov dword [esp + 0x2c8], edi
mov esi, dword [eax + 0x10215f04]
mov edx, dword [eax + 0x10215f00]
mov edi, dword [esp + ecx*4 + 0x300]
mov dword [esp + 0x2cc], esi
lea esi, [ecx + 3]
mov dword [esp + 0x2d0], edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], edi
mov eax, dword [esp + 0x50]
mul dword [esp + 0x54]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov eax, dword [esp + 0x5c]
mov edi, 3
mov edx, dword [esp + 0x58]
mov dword [esp + esi*4 + 0x1c0], eax
mov dword [esp + esi*4 + 0x1c4], edx
mov dword [esp + 0xa0], ebx
mov eax, dword [esp + ecx*4 + 0x300]
mov edx, dword [esp + edi*4 + 0x2c0]
mov dword [esp + esi*4 + 0x200], 0
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], edx
mov eax, dword [esp + 0xe0]
mul dword [esp + 0xe4]
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], edx
mov eax, dword [esp + 0xe8]
xor ebx, ebx
mov edx, dword [esp + esi*4 + 0x1c0]
add edx, eax
cmp edx, eax
mov dword [esp + esi*4 + 0x1c0], edx
setb bl
dec esi
add ebx, dword [esp + 0xec]
mov dword [esp + esi*4 + 0x1c0], ebx
dec edi
jne 0x10051263
mov eax, esi
mov ebx, dword [esp + 0xa0]
dec eax
mov dword [esp + esi*4 + 0x200], 0
js 0x10051381
mov edx, esi
shr edx, 1
je 0x100545d1
xor eax, eax
lea edi, [esp + esi*4 + 0x1bc]
mov dword [esp + 0x10], edi
lea edi, [esp + esi*4 + 0x1fc]
mov dword [esp + 0xc], edi
xor edi, edi
mov dword [esp + 0xdc], ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0xa0], ebx
mov ecx, eax
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
inc eax
mov dword [ecx + ebx], edi
mov dword [ecx + esi], edi
mov dword [ecx + ebx - 4], edi
mov dword [ecx + esi - 4], edi
add ecx, 0xfffffff8
cmp eax, edx
jb 0x10051331
mov ecx, dword [esp + 0xdc]
lea edx, [eax + eax + 1]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0xa0]
lea eax, [edx - 1]
cmp eax, esi
jae 0x10051381
shl edx, 2
lea edi, [esp + esi*4 + 0x1fc]
neg edx
lea esi, [esp + esi*4 + 0x1bc]
xor eax, eax
mov dword [edx + edi + 4], eax
mov dword [edx + esi + 4], eax
mov edx, ecx
dec edx
je 0x1005144c
mov dword [esp + 0xdc], ecx
mov eax, 4
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x130], edx
mov ecx, eax
lea ebx, [esp + edx*4 + 0x200]
lea esi, [esp + edx*4 + 0x1c0]
mov eax, dword [esp + 0x130]
mov edi, dword [esp + ecx*4 + 0x2c0]
mov dword [esp + 0x188], edi
mov edx, dword [esp + eax*4 + 0x300]
mov dword [esp + 0x184], edx
mov eax, dword [esp + 0x184]
mul dword [esp + 0x188]
mov dword [esp + 0x18c], eax
mov dword [esp + 0x190], edx
mov edi, dword [esp + 0x18c]
mov edx, dword [esi + ecx*4]
add edx, edi
mov dword [esi + ecx*4], edx
xor eax, eax
cmp edx, edi
mov edx, 0
setb al
add eax, dword [esp + 0x190]
mov edi, dword [esi + ecx*4 - 4]
add edi, eax
cmp edi, eax
mov dword [esi + ecx*4 - 4], edi
setb dl
add dword [ebx + ecx*4 - 8], edx
dec ecx
jne 0x100513b4
mov edx, dword [esp + 0x130]
mov eax, 4
dec edx
jne 0x1005139d
mov ecx, dword [esp + 0xdc]
mov ebx, dword [esp + 0xa0]
mov eax, dword [esp + 0x74]
lea edx, [esp + ecx*4 + 0x310]
add eax, dword [esp + 0x60]
lea esi, [ecx + 3]
mov dword [esp + 0x74], eax
lea eax, [ecx + 4]
mov edi, dword [edx - 0x140]
mov dword [esp + 0x28], edx
mov dword [edx], edi
cmp eax, 1
je 0x1005159d
mov edx, esi
mov dword [esp + 0x2c], 0
shr edx, 1
mov dword [esp + 0x9c], edx
je 0x100545c7
xor edx, edx
lea edi, [esp + ecx*4 + 0x30c]
mov dword [esp + 0x98], edi
lea edi, [esp + ecx*4 + 0x1cc]
mov dword [esp + 4], edi
lea edi, [esp + ecx*4 + 0x20c]
mov dword [esp + 0xdc], ecx
mov dword [esp], eax
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x94], edi
mov dword [esp + 8], esi
mov ecx, edx
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x2c]
nop
lea esi, [esi]
mov esi, dword [esp + 0x94]
inc edx
mov edi, dword [esp + 0x98]
mov dword [esp + 0xb8], edx
add eax, dword [ecx + esi]
mov edx, dword [ecx + ebx]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [ecx + edi], edx
mov edx, eax
setb dl
add edx, dword [ecx + esi - 4]
mov esi, dword [ecx + ebx - 4]
add esi, edx
cmp esi, edx
mov edx, dword [esp + 0xb8]
mov dword [ecx + edi - 4], esi
setb al
add ecx, 0xfffffff8
cmp edx, dword [esp + 0x9c]
jb 0x100514e0
mov dword [esp + 0x2c], eax
lea edx, [edx + edx + 1]
mov ecx, dword [esp + 0xdc]
mov esi, dword [esp + 8]
mov eax, dword [esp]
mov ebx, dword [esp + 0xa0]
lea edi, [edx - 1]
cmp edi, esi
jae 0x10051597
shl edx, 2
lea edi, [esp + ecx*4 + 0x1cc]
neg edx
mov dword [esp], eax
mov dword [esp + 8], esi
lea esi, [esp + ecx*4 + 0x20c]
mov eax, dword [esp + 0x2c]
lea ecx, [esp + ecx*4 + 0x30c]
add eax, dword [edx + esi + 4]
add eax, dword [edx + edi + 4]
mov dword [edx + ecx + 4], eax
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 8]
mov eax, dword [esp]
mov edi, dword [edx]
jmp 0x1005159d
mov edx, dword [esp + 0x28]
mov edi, dword [edx]
test edi, edi
jne 0x100515b5
dec eax
lea edx, [esp + eax*4 + 0x300]
cmp dword [edx], 0
je 0x100515a1
mov dword [esp + 0x28], edx
lea esi, [eax - 1]
mov edx, dword [esp + 0x304]
test edx, edx
jle 0x1005165a
dec dword [esp + 0x74]
add edx, edx
mov dword [esp + 0x304], edx
cmp eax, 2
jb 0x1005165a
lea edx, [eax - 1]
shr edx, 1
je 0x100545bd
mov dword [esp], eax
xor ecx, ecx
mov dword [esp + 0xa0], ebx
mov eax, dword [esp + ecx*8 + 0x308]
mov ebx, eax
shr ebx, 0x1f
add eax, eax
or dword [esp + ecx*8 + 0x304], ebx
mov ebx, dword [esp + ecx*8 + 0x30c]
mov edi, ebx
shr edi, 0x1f
add ebx, ebx
or eax, edi
mov dword [esp + ecx*8 + 0x308], eax
mov dword [esp + ecx*8 + 0x30c], ebx
inc ecx
cmp ecx, edx
jb 0x100515f1
mov eax, dword [esp]
lea edx, [ecx + ecx + 1]
mov ebx, dword [esp + 0xa0]
lea ecx, [edx - 1]
cmp ecx, esi
jae 0x1005165a
mov edi, dword [esp + edx*4 + 0x304]
mov ecx, edi
shr ecx, 0x1f
add edi, edi
or dword [esp + edx*4 + 0x300], ecx
mov dword [esp + edx*4 + 0x304], edi
mov edx, dword [esp + 0x28]
mov ecx, esi
cmp dword [edx], 0
je 0x10051667
mov ecx, eax
cmp ecx, 4
jb 0x100516f5
mov eax, dword [esp + 0x314]
shr eax, 0x1f
mov edx, dword [esp + 0x310]
add edx, eax
mov dword [esp + 0x310], edx
cmp edx, eax
jae 0x100516e1
mov dword [esp + 0x300], 0
mov ecx, 3
cmp dword [esp + 0x30c], 0xffffffff
je 0x100516b3
lea edx, [esp + 0x30c]
mov eax, dword [edx]
jmp 0x100516c6
dec ecx
lea edx, [esp + ecx*4 + 0x300]
mov eax, dword [edx]
cmp eax, 0xffffffff
je 0x100516b3
test ecx, ecx
je 0x100516cb
inc eax
mov dword [edx], eax
jmp 0x100516f5
inc dword [esp + 0x74]
mov ecx, 1
mov dword [esp + 0x304], VariantInit
jmp 0x100516f5
mov ecx, 4
test edx, edx
jne 0x100516f5
dec ecx
cmp dword [esp + ecx*4 + 0x300], 0
je 0x100516ea
sar dword [esp + 0x7c], 1
dec dword [esp + 0x78]
jns 0x100511c2
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xdc], ecx
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
jmp 0x10051dcd
mov eax, dword [esp + 0x78]
jmp 0x1005115c
cmp dword [esp + 0xa0], 0x216
jle 0x10051daa
mov dword [esp + 0x388], eax
mov dword [esp + 0x384], eax
cmp dword [esp + 0xa0], 0x1000
jge 0x100517ad
mov edx, 0x1000
lea ecx, [esp + 0xdc]
mov dword [ecx], eax
mov dword [esp + 0x100], ebx
mov dword [esp + 0xa4], esi
lea esi, [esp + 0x310]
mov dword [esi], eax
mov dword [esi - 4], eax
mov dword [esi - 8], eax
mov dword [esi - 0xc], eax
mov eax, 3
mov dword [esp + 0x7c], edx
mov dword [esp + 0x128], edi
mov ecx, dword [ecx]
mov esi, dword [esp + 0x74]
mov ebx, dword [esp + 0xa0]
jmp 0x10051825
add dword [esp + 0xa0], 0xfffff000
mov edx, 0x1000
mov dword [esp + 0x100], ebx
mov eax, 3
mov dword [esp + 0x7c], edx
mov dword [esp + 0xa4], esi
mov dword [esp + 0x128], edi
mov ebx, dword [esp + 0xa0]
mov edx, eax
shl edx, 4
movsx esi, word [eax*2 + 0x1021623a]
mov ecx, dword [edx + 0x1021608c]
mov dword [esp + 0x304], ecx
lea ecx, [edx + 0x10216088]
mov edi, dword [ecx]
mov ecx, dword [ecx - 4]
mov edx, dword [edx + 0x10216080]
mov dword [esp + 0x308], edi
lea edi, [esp + 0x30c]
mov dword [edi], ecx
mov ecx, 4
mov dword [edi + 4], edx
mov dword [esp + 0x74], esi
mov edx, dword [esp + 0x7c]
jmp 0x10051837
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
sar edx, 1
dec eax
js 0x10051703
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], edx
cmp ebx, dword [esp + 0x7c]
jl 0x1005182f
sub ebx, dword [esp + 0x7c]
test ecx, ecx
je 0x10051da1
mov eax, dword [esp + 0x78]
movsx esi, word [eax*2 + 0x1021623a]
shl eax, 4
mov dword [esp + 0x60], esi
mov edx, dword [eax + 0x1021608c]
mov edi, dword [eax + 0x10216088]
mov dword [esp + 0x2c4], edx
mov dword [esp + 0x2c8], edi
mov esi, dword [eax + 0x10216084]
mov edx, dword [eax + 0x10216080]
mov edi, dword [esp + ecx*4 + 0x300]
mov dword [esp + 0x2cc], esi
lea esi, [ecx + 3]
mov dword [esp + 0x2d0], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x18]
mul dword [esp + 0x1c]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x24]
mov edi, 3
mov edx, dword [esp + 0x20]
mov dword [esp + esi*4 + 0x1c0], eax
mov dword [esp + esi*4 + 0x1c4], edx
mov dword [esp + 0xa0], ebx
mov eax, dword [esp + ecx*4 + 0x300]
mov edx, dword [esp + edi*4 + 0x2c0]
mov dword [esp + esi*4 + 0x200], 0
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], edx
mov eax, dword [esp + 0xa8]
mul dword [esp + 0xac]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], edx
mov eax, dword [esp + 0xb0]
xor ebx, ebx
mov edx, dword [esp + esi*4 + 0x1c0]
add edx, eax
cmp edx, eax
mov dword [esp + esi*4 + 0x1c0], edx
setb bl
dec esi
add ebx, dword [esp + 0xb4]
mov dword [esp + esi*4 + 0x1c0], ebx
dec edi
jne 0x100518e5
mov eax, esi
mov ebx, dword [esp + 0xa0]
dec eax
mov dword [esp + esi*4 + 0x200], 0
js 0x10051a03
mov edx, esi
shr edx, 1
je 0x100545ef
xor eax, eax
lea edi, [esp + esi*4 + 0x1bc]
mov dword [esp + 0x10], edi
lea edi, [esp + esi*4 + 0x1fc]
mov dword [esp + 0xc], edi
xor edi, edi
mov dword [esp + 0xdc], ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0xa0], ebx
mov ecx, eax
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
inc eax
mov dword [ecx + ebx], edi
mov dword [ecx + esi], edi
mov dword [ecx + ebx - 4], edi
mov dword [ecx + esi - 4], edi
add ecx, 0xfffffff8
cmp eax, edx
jb 0x100519b3
mov ecx, dword [esp + 0xdc]
lea edx, [eax + eax + 1]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0xa0]
lea eax, [edx - 1]
cmp eax, esi
jae 0x10051a03
shl edx, 2
lea edi, [esp + esi*4 + 0x1fc]
neg edx
lea esi, [esp + esi*4 + 0x1bc]
xor eax, eax
mov dword [edx + edi + 4], eax
mov dword [edx + esi + 4], eax
mov edx, ecx
dec edx
je 0x10051ace
mov dword [esp + 0xdc], ecx
mov eax, 4
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xb8], edx
mov ecx, eax
lea ebx, [esp + edx*4 + 0x200]
lea esi, [esp + edx*4 + 0x1c0]
mov eax, dword [esp + 0xb8]
mov edi, dword [esp + ecx*4 + 0x2c0]
mov dword [esp + 0x11c], edi
mov edx, dword [esp + eax*4 + 0x300]
mov dword [esp + 0x118], edx
mov eax, dword [esp + 0x118]
mul dword [esp + 0x11c]
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], edx
mov edi, dword [esp + 0x120]
mov edx, dword [esi + ecx*4]
add edx, edi
mov dword [esi + ecx*4], edx
xor eax, eax
cmp edx, edi
mov edx, 0
setb al
add eax, dword [esp + 0x124]
mov edi, dword [esi + ecx*4 - 4]
add edi, eax
cmp edi, eax
mov dword [esi + ecx*4 - 4], edi
setb dl
add dword [ebx + ecx*4 - 8], edx
dec ecx
jne 0x10051a36
mov edx, dword [esp + 0xb8]
mov eax, 4
dec edx
jne 0x10051a1f
mov ecx, dword [esp + 0xdc]
mov ebx, dword [esp + 0xa0]
mov eax, dword [esp + 0x74]
lea edx, [esp + ecx*4 + 0x310]
add eax, dword [esp + 0x60]
lea esi, [ecx + 3]
mov dword [esp + 0x74], eax
lea eax, [ecx + 4]
mov edi, dword [edx - 0x140]
mov dword [esp + 0x28], edx
mov dword [edx], edi
cmp eax, 1
je 0x10051c16
mov edx, esi
mov dword [esp + 0x2c], 0
shr edx, 1
mov dword [esp + 0x98], edx
je 0x100545e5
xor edx, edx
lea edi, [esp + ecx*4 + 0x1cc]
mov dword [esp + 4], edi
lea edi, [esp + ecx*4 + 0x20c]
mov dword [esp + 0x94], edi
lea edi, [esp + ecx*4 + 0x30c]
mov dword [esp + 0xdc], ecx
mov dword [esp], eax
mov dword [esp + 0xa0], ebx
mov dword [esp + 8], esi
mov ecx, edx
mov ebx, dword [esp + 4]
mov eax, dword [esp + 0x2c]
lea esi, [esi]
lea edi, [edi]
mov esi, dword [esp + 0x94]
inc edx
mov dword [esp + 0x9c], edx
add eax, dword [ecx + esi]
mov edx, dword [ecx + ebx]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [ecx + edi], edx
mov edx, eax
setb dl
add edx, dword [ecx + esi - 4]
mov esi, dword [ecx + ebx - 4]
add esi, edx
cmp esi, edx
mov edx, dword [esp + 0x9c]
mov dword [ecx + edi - 4], esi
setb al
add ecx, 0xfffffff8
cmp edx, dword [esp + 0x98]
jb 0x10051b60
mov dword [esp + 0x2c], eax
lea edx, [edx + edx + 1]
mov ecx, dword [esp + 0xdc]
mov esi, dword [esp + 8]
mov eax, dword [esp]
mov ebx, dword [esp + 0xa0]
lea edi, [edx - 1]
cmp edi, esi
jae 0x10051c10
shl edx, 2
lea edi, [esp + ecx*4 + 0x1cc]
neg edx
mov dword [esp], eax
mov dword [esp + 8], esi
lea esi, [esp + ecx*4 + 0x20c]
mov eax, dword [esp + 0x2c]
lea ecx, [esp + ecx*4 + 0x30c]
add eax, dword [edx + esi + 4]
add eax, dword [edx + edi + 4]
mov dword [edx + ecx + 4], eax
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 8]
mov eax, dword [esp]
mov edi, dword [edx]
jmp 0x10051c16
mov edx, dword [esp + 0x28]
mov edi, dword [edx]
test edi, edi
jne 0x10051c2e
dec eax
lea edx, [esp + eax*4 + 0x300]
cmp dword [edx], 0
je 0x10051c1a
mov dword [esp + 0x28], edx
lea esi, [eax - 1]
mov edx, dword [esp + 0x304]
test edx, edx
jle 0x10051cd3
dec dword [esp + 0x74]
add edx, edx
mov dword [esp + 0x304], edx
cmp eax, 2
jb 0x10051cd3
lea edx, [eax - 1]
shr edx, 1
je 0x100545db
mov dword [esp], eax
xor ecx, ecx
mov dword [esp + 0xa0], ebx
mov eax, dword [esp + ecx*8 + 0x308]
mov ebx, eax
shr ebx, 0x1f
add eax, eax
or dword [esp + ecx*8 + 0x304], ebx
mov ebx, dword [esp + ecx*8 + 0x30c]
mov edi, ebx
shr edi, 0x1f
add ebx, ebx
or eax, edi
mov dword [esp + ecx*8 + 0x308], eax
mov dword [esp + ecx*8 + 0x30c], ebx
inc ecx
cmp ecx, edx
jb 0x10051c6a
mov eax, dword [esp]
lea edx, [ecx + ecx + 1]
mov ebx, dword [esp + 0xa0]
lea ecx, [edx - 1]
cmp ecx, esi
jae 0x10051cd3
mov edi, dword [esp + edx*4 + 0x304]
mov ecx, edi
shr ecx, 0x1f
add edi, edi
or dword [esp + edx*4 + 0x300], ecx
mov dword [esp + edx*4 + 0x304], edi
mov edx, dword [esp + 0x28]
mov ecx, esi
cmp dword [edx], 0
je 0x10051ce0
mov ecx, eax
cmp ecx, 4
jb 0x10051d6e
mov eax, dword [esp + 0x314]
shr eax, 0x1f
mov edx, dword [esp + 0x310]
add edx, eax
mov dword [esp + 0x310], edx
cmp edx, eax
jae 0x10051d5a
mov dword [esp + 0x300], 0
mov ecx, 3
cmp dword [esp + 0x30c], 0xffffffff
je 0x10051d2c
lea edx, [esp + 0x30c]
mov eax, dword [edx]
jmp 0x10051d3f
dec ecx
lea edx, [esp + ecx*4 + 0x300]
mov eax, dword [edx]
cmp eax, 0xffffffff
je 0x10051d2c
test ecx, ecx
je 0x10051d44
inc eax
mov dword [edx], eax
jmp 0x10051d6e
inc dword [esp + 0x74]
mov ecx, 1
mov dword [esp + 0x304], VariantInit
jmp 0x10051d6e
mov ecx, 4
test edx, edx
jne 0x10051d6e
dec ecx
cmp dword [esp + ecx*4 + 0x300], 0
je 0x10051d63
sar dword [esp + 0x7c], 1
dec dword [esp + 0x78]
jns 0x10051848
mov dword [esp + 0xa0], ebx
mov dword [esp + 0xdc], ecx
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
jmp 0x10051dcd
mov eax, dword [esp + 0x78]
jmp 0x100517e2
mov dword [esp + 0x310], eax
mov dword [esp + 0x30c], eax
mov dword [esp + 0x308], eax
mov dword [esp + 0x304], eax
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xa0]
lea edx, [eax + 0x1b]
cmp edx, 0x1a
ja 0x10051e46
movsx edx, word [eax*2 + 0x1021621e]
shl eax, 4
mov dword [esp + 0x14], edx
mov ecx, dword [eax + 0x10215efc]
mov dword [esp + 0x384], ecx
mov edx, dword [eax + 0x10215ef8]
mov ecx, dword [eax + 0x10215ef4]
mov eax, dword [eax + 0x10215ef0]
mov dword [esp + 0x390], eax
mov dword [esp + 0x388], edx
mov dword [esp + 0x38c], ecx
test eax, eax
mov eax, 4
mov dword [esp + 0x7c], eax
jne 0x100545f9
dec eax
lea ecx, [esp + eax*4 + 0x380]
cmp dword [ecx], 0
je 0x10051e30
mov dword [esp + 0x7c], eax
jmp 0x10052ba9
xor eax, eax
mov dword [esp + 0x280], eax
mov dword [esp + 0x28c], eax
mov dword [esp + 0x290], eax
mov dword [esp + 0x294], eax
mov dword [esp + 0x298], eax
mov dword [esp + 0x29c], eax
mov dword [esp + 0x2a0], eax
mov dword [esp + 0x2a4], eax
mov dword [esp + 0x2a8], eax
mov dword [esp + 0x2ac], eax
mov dword [esp + 0x2b0], eax
mov dword [esp + 0x2b4], eax
mov dword [esp + 0x2b8], eax
mov dword [esp + 0x2bc], eax
cmp dword [esp + 0xa0], 0
jl 0x1005476b
cmp dword [esp + 0xa0], 0x37
jl 0x10051f5a
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x100], ebx
mov ebx, edx
sar ebx, 3
mov dword [esp + 0x78], 4
movzx ecx, word [ebx*2 + 0x10216162]
lea eax, [ebx + 1]
shr ecx, 5
cmp ecx, edx
jle 0x10051ef5
mov eax, ebx
movzx ecx, word [eax*2 + 0x10216160]
mov eax, ecx
and eax, 0x1f
shr ecx, 5
sub edx, ecx
mov dword [esp + 0xa0], edx
movsx edx, word [eax*2 + 0x10216242]
shl eax, 4
mov dword [esp + 0x60], edx
mov ebx, dword [eax + 0x102160cc]
mov edx, dword [eax + 0x102160c8]
mov ecx, dword [eax + 0x102160c4]
mov eax, dword [eax + 0x102160c0]
mov dword [esp + 0x2c4], ebx
mov dword [esp + 0x2c8], edx
mov dword [esp + 0x2cc], ecx
mov dword [esp + 0x2d0], eax
mov ebx, dword [esp + 0x100]
jmp 0x10051f62
mov dword [esp + 0x78], 0
cmp dword [esp + 0xa0], 0x37
je 0x10054709
mov eax, dword [esp + 0xa0]
lea edx, [eax - 0x1b]
test edx, edx
jle 0x100546f4
movsx eax, word [edx*2 + 0x102165be]
mov dword [esp + 8], eax
mov ecx, dword [edx*8 + 0x102163dc]
mov eax, dword [edx*8 + 0x102163d8]
mov dword [esp + 0x284], ecx
mov ecx, 2
mov dword [esp + 0x288], eax
mov dword [esp + 0x28], ecx
test eax, eax
jne 0x100546e4
mov eax, ecx
dec eax
cmp dword [esp + eax*4 + 0x280], 0
je 0x10051fbd
mov dword [esp + 0x28], eax
mov dword [esp + 0xa0], 0x1b
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x7c], 2
movsx ecx, word [eax*2 + 0x102165be]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax*8 + 0x102163dc]
mov eax, dword [eax*8 + 0x102163d8]
mov dword [esp + 0x384], ecx
mov dword [esp + 0x388], eax
test eax, eax
jne 0x100546d8
mov eax, dword [esp + 0x7c]
dec eax
lea ecx, [esp + eax*4 + 0x380]
cmp dword [ecx], 0
je 0x1005201a
mov dword [esp + 0x7c], eax
test edx, edx
jle 0x100525e9
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x7c]
lea edx, [eax + edx - 1]
mov dword [esp + 0xc], edx
mov edx, dword [ecx]
mov eax, dword [esp + eax*4 + 0x280]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x40]
mul dword [esp + 0x44]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x4c]
mov dword [esp + eax*4 + 0x1c0], edx
mov edx, dword [esp + 0x48]
mov dword [esp + eax*4 + 0x1c4], edx
mov eax, dword [esp + 0x28]
dec eax
je 0x10052130
mov dword [esp + 0xa4], esi
mov dword [esp + 0x100], ebx
mov ebx, ecx
mov dword [esp + 0x128], edi
mov ecx, eax
mov esi, dword [esp + 0xc]
mov edx, dword [ebx]
mov edi, dword [esp + ecx*4 + 0x280]
mov dword [esp + esi*4 + 0x200], 0
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], edi
mov eax, dword [esp + 0xcc]
mul dword [esp + 0xd0]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], edx
mov edi, dword [esp + 0xd4]
mov edx, dword [esp + esi*4 + 0x1c0]
add edx, edi
cmp edx, edi
mov dword [esp + esi*4 + 0x1c0], edx
mov edx, 0
setb dl
dec esi
add edx, dword [esp + 0xd8]
mov dword [esp + esi*4 + 0x1c0], edx
dec ecx
jne 0x100520a6
mov dword [esp + 0xc], esi
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x200], 0
dec eax
js 0x100521fc
mov eax, dword [esp + 0xc]
shr eax, 1
mov dword [esp + 0x10], eax
je 0x100546ce
mov ecx, dword [esp + 0xc]
xor eax, eax
mov dword [esp + 0x100], ebx
mov dword [esp + 0xa4], esi
lea edx, [esp + ecx*4 + 0x1bc]
mov dword [esp + 4], edx
lea edx, [esp + ecx*4 + 0x1fc]
mov dword [esp], edx
mov dword [esp + 0x128], edi
xor edi, edi
mov edx, eax
mov ecx, dword [esp]
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0x10]
inc eax
mov dword [edx + ecx], edi
mov dword [edx + ebx], edi
mov dword [edx + ecx - 4], edi
mov dword [edx + ebx - 4], edi
add edx, 0xfffffff8
cmp eax, esi
jb 0x10052195
mov ebx, dword [esp + 0x100]
lea edx, [eax + eax + 1]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
lea eax, [edx - 1]
cmp eax, dword [esp + 0xc]
jae 0x100521fc
shl edx, 2
xor eax, eax
mov dword [esp + 0x100], ebx
neg edx
mov ebx, dword [esp + 0xc]
lea ecx, [esp + ebx*4 + 0x1fc]
mov dword [edx + ecx + 4], eax
lea ecx, [esp + ebx*4 + 0x1bc]
mov dword [edx + ecx + 4], eax
mov ebx, dword [esp + 0x100]
mov eax, dword [esp + 0x7c]
dec eax
je 0x100522d1
mov dword [esp + 0x100], ebx
mov dword [esp + 0xa4], esi
mov dword [esp + 0x128], edi
mov edx, dword [esp + 0x28]
mov esi, edx
test edx, edx
je 0x100522b5
mov dword [esp], eax
lea ebx, [esp + eax*4 + 0x200]
lea ecx, [esp + eax*4 + 0x1c0]
mov eax, dword [esp]
mov edi, dword [esp + esi*4 + 0x280]
mov dword [esp + 0x178], edi
mov edx, dword [esp + eax*4 + 0x380]
mov dword [esp + 0x174], edx
mov eax, dword [esp + 0x174]
mul dword [esp + 0x178]
mov dword [esp + 0x17c], eax
mov dword [esp + 0x180], edx
mov edi, dword [esp + 0x17c]
mov edx, dword [ecx + esi*4]
add edx, edi
mov dword [ecx + esi*4], edx
xor eax, eax
cmp edx, edi
mov edx, 0
setb al
add eax, dword [esp + 0x180]
mov edi, dword [ecx + esi*4 - 4]
add edi, eax
cmp edi, eax
mov dword [ecx + esi*4 - 4], edi
setb dl
add dword [ebx + esi*4 - 8], edx
dec esi
jne 0x1005223b
mov eax, dword [esp]
mov edx, dword [esp + 0x28]
dec eax
jne 0x10052220
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x14]
add eax, dword [esp + 8]
mov dword [esp + 0x14], eax
lea eax, [edx + ecx]
lea edx, [edx + ecx - 1]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + eax*4 + 0x1c0]
lea ecx, [esp + eax*4 + 0x380]
mov dword [esp + 0xc], ecx
mov dword [ecx], edx
cmp eax, 1
je 0x1005243c
mov edx, dword [esp + 0x7c]
mov dword [esp + 8], 0
shr edx, 1
mov dword [esp + 0x2c], edx
je 0x100546c4
mov ecx, dword [esp + 0x7c]
xor edx, edx
mov dword [esp + 0x100], ebx
mov dword [esp + 4], eax
lea ebx, [esp + ecx*4 + 0x1c0]
mov dword [esp], ebx
lea ebx, [esp + ecx*4 + 0x200]
mov dword [esp + 0x28], ebx
lea ecx, [esp + ecx*4 + 0x380]
mov dword [esp + 0x10], ecx
mov ecx, edx
mov ebx, dword [esp]
mov eax, dword [esp + 8]
mov dword [esp + 0xa4], esi
mov dword [esp + 0x128], edi
lea esi, [esi]
mov esi, dword [esp + 0x28]
inc edx
mov edi, dword [esp + 0x10]
mov dword [esp], edx
add eax, dword [ecx + esi]
mov edx, dword [ecx + ebx]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [ecx + edi], edx
mov edx, eax
setb dl
add edx, dword [ecx + esi - 4]
mov esi, dword [ecx + ebx - 4]
add esi, edx
cmp esi, edx
mov edx, dword [esp]
mov dword [ecx + edi - 4], esi
setb al
add ecx, 0xfffffff8
cmp edx, dword [esp + 0x2c]
jb 0x10052370
mov dword [esp + 8], eax
lea edx, [edx + edx + 1]
mov ebx, dword [esp + 0x100]
mov eax, dword [esp + 4]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
lea ecx, [edx - 1]
cmp ecx, dword [esp + 0x7c]
jae 0x10052436
shl edx, 2
mov dword [esp + 0xa4], esi
neg edx
mov esi, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x100], ebx
lea ecx, [esp + esi*4 + 0x200]
add eax, dword [edx + ecx + 4]
lea ebx, [esp + esi*4 + 0x1c0]
add eax, dword [edx + ebx + 4]
lea ecx, [esp + esi*4 + 0x380]
mov dword [edx + ecx + 4], eax
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x100]
mov eax, dword [esp + 4]
mov esi, dword [esp + 0xa4]
mov edx, dword [edx]
jmp 0x1005243c
mov edx, dword [esp + 0xc]
mov edx, dword [edx]
test edx, edx
jne 0x10052458
dec eax
lea edx, [esp + eax*4 + 0x380]
cmp dword [edx], 0
je 0x10052440
mov dword [esp + 0xc], edx
lea edx, [eax - 1]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x384]
test edx, edx
jle 0x1005251d
dec dword [esp + 0x14]
add edx, edx
mov dword [esp + 0x384], edx
cmp eax, 2
jb 0x1005251d
lea edx, [eax - 1]
shr edx, 1
je 0x100546ba
mov dword [esp + 4], eax
xor ecx, ecx
mov dword [esp + 0xa4], esi
mov dword [esp + 0x128], edi
mov eax, dword [esp + ecx*8 + 0x388]
mov esi, eax
shr esi, 0x1f
add eax, eax
or dword [esp + ecx*8 + 0x384], esi
mov esi, dword [esp + ecx*8 + 0x38c]
mov edi, esi
shr edi, 0x1f
add esi, esi
or eax, edi
mov dword [esp + ecx*8 + 0x388], eax
mov dword [esp + ecx*8 + 0x38c], esi
inc ecx
cmp ecx, edx
jb 0x1005249c
mov eax, dword [esp + 4]
lea edx, [ecx + ecx + 1]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
lea ecx, [edx - 1]
cmp ecx, dword [esp + 0x7c]
jae 0x1005251d
mov dword [esp + 0x100], ebx
mov ebx, dword [esp + edx*4 + 0x384]
mov ecx, ebx
shr ecx, 0x1f
add ebx, ebx
mov dword [esp + edx*4 + 0x384], ebx
or dword [esp + edx*4 + 0x380], ecx
mov ebx, dword [esp + 0x100]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x7c]
cmp dword [edx], 0
je 0x1005252c
mov ecx, eax
mov dword [esp + 0x7c], ecx
cmp ecx, 4
jb 0x100525e0
mov eax, dword [esp + 0x394]
shr eax, 0x1f
mov edx, dword [esp + 0x390]
add edx, eax
mov dword [esp + 0x390], edx
cmp edx, eax
jae 0x100525bc
mov eax, 3
mov dword [esp + 0x380], 0
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x38c], 0xffffffff
je 0x10052580
lea ecx, [esp + 0x38c]
mov eax, dword [ecx]
jmp 0x1005259c
mov edx, eax
dec edx
lea ecx, [esp + edx*4 + 0x380]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x10052582
mov dword [esp + 0x7c], edx
cmp dword [esp + 0x7c], 0
je 0x100525a1
inc eax
mov dword [ecx], eax
jmp 0x100525e9
inc dword [esp + 0x14]
lea ecx, [esp + 0x384]
mov dword [ecx], SysReAllocStringLen
mov dword [esp + 0x7c], 1
jmp 0x100525e9
mov eax, 4
mov dword [esp + 0x7c], eax
test edx, edx
jne 0x10054605
dec eax
lea ecx, [esp + eax*4 + 0x380]
cmp dword [ecx], 0
je 0x100525cd
mov dword [esp + 0x7c], eax
jmp 0x100525e9
mov eax, ecx
lea ecx, [esp + eax*4 + 0x380]
cmp dword [esp + 0x78], 0
je 0x10052ba9
mov dword [esp + 0x100], ebx
mov eax, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
lea edx, [ebx + eax]
mov dword [esp + 8], edx
lea edx, [ebx + eax - 1]
mov dword [esp + 0xc], edx
mov edx, dword [ecx]
mov eax, dword [esp + eax*4 + 0x2c0]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
mov ebx, dword [esp + 0x100]
mov eax, dword [esp + 0x30]
mul dword [esp + 0x34]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x3c]
mov dword [esp + eax*4 + 0x1c0], edx
mov edx, dword [esp + 0x38]
mov dword [esp + eax*4 + 0x1c4], edx
mov eax, dword [esp + 0x78]
lea eax, [eax - 1]
mov dword [esp + 0xa4], esi
mov dword [esp + 0x100], ebx
mov ebx, ecx
mov dword [esp + 0x128], edi
mov ecx, eax
mov esi, dword [esp + 0xc]
mov edx, dword [ebx]
mov edi, dword [esp + ecx*4 + 0x2c0]
mov dword [esp + esi*4 + 0x200], 0
mov dword [esp + 0xbc], edx
mov dword [esp + 0xc0], edi
mov eax, dword [esp + 0xbc]
mul dword [esp + 0xc0]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], edx
mov edi, dword [esp + 0xc4]
mov edx, dword [esp + esi*4 + 0x1c0]
add edx, edi
cmp edx, edi
mov dword [esp + esi*4 + 0x1c0], edx
mov edx, 0
setb dl
dec esi
add edx, dword [esp + 0xc8]
mov dword [esp + esi*4 + 0x1c0], edx
dec ecx
jne 0x10052678
mov dword [esp + 0xc], esi
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x200], 0
dec eax
js 0x100527ce
mov eax, dword [esp + 0xc]
shr eax, 1
mov dword [esp + 0x10], eax
je 0x100546b0
mov ecx, dword [esp + 0xc]
xor eax, eax
mov dword [esp + 0x100], ebx
mov dword [esp + 0xa4], esi
lea edx, [esp + ecx*4 + 0x1bc]
mov dword [esp + 4], edx
lea edx, [esp + ecx*4 + 0x1fc]
mov dword [esp], edx
mov dword [esp + 0x128], edi
xor edi, edi
mov edx, eax
mov ecx, dword [esp]
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0x10]
inc eax
mov dword [edx + ecx], edi
mov dword [edx + ebx], edi
mov dword [edx + ecx - 4], edi
mov dword [edx + ebx - 4], edi
add edx, 0xfffffff8
cmp eax, esi
jb 0x10052767
mov ebx, dword [esp + 0x100]
lea edx, [eax + eax + 1]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
lea eax, [edx - 1]
cmp eax, dword [esp + 0xc]
jae 0x100527ce
shl edx, 2
xor eax, eax
mov dword [esp + 0x100], ebx
neg edx
mov ebx, dword [esp + 0xc]
lea ecx, [esp + ebx*4 + 0x1fc]
mov dword [edx + ecx + 4], eax
lea ecx, [esp + ebx*4 + 0x1bc]
mov dword [edx + ecx + 4], eax
mov ebx, dword [esp + 0x100]
mov eax, dword [esp + 0x7c]
dec eax
je 0x100528a3
mov dword [esp + 0x100], ebx
mov dword [esp + 0xa4], esi
mov dword [esp + 0x128], edi
mov edx, dword [esp + 0x78]
mov esi, edx
test edx, edx
je 0x10052887
mov dword [esp], eax
lea ebx, [esp + eax*4 + 0x200]
lea ecx, [esp + eax*4 + 0x1c0]
mov eax, dword [esp]
mov edi, dword [esp + esi*4 + 0x2c0]
mov dword [esp + 0x138], edi
mov edx, dword [esp + eax*4 + 0x380]
mov dword [esp + 0x134], edx
mov eax, dword [esp + 0x134]
mul dword [esp + 0x138]
mov dword [esp + 0x13c], eax
mov dword [esp + 0x140], edx
mov edi, dword [esp + 0x13c]
mov edx, dword [ecx + esi*4]
add edx, edi
mov dword [ecx + esi*4], edx
xor eax, eax
cmp edx, edi
mov edx, 0
setb al
add eax, dword [esp + 0x140]
mov edi, dword [ecx + esi*4 - 4]
add edi, eax
cmp edi, eax
mov dword [ecx + esi*4 - 4], edi
setb dl
add dword [ebx + esi*4 - 8], edx
dec esi
jne 0x1005280d
mov eax, dword [esp]
mov edx, dword [esp + 0x78]
dec eax
jne 0x100527f2
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x60]
mov dword [esp + 0x14], eax
lea eax, [edx + ecx - 1]
mov edx, dword [esp + 8]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + edx*4 + 0x1c0]
lea ecx, [esp + edx*4 + 0x380]
mov dword [esp + 4], ecx
mov dword [ecx], eax
cmp edx, 1
je 0x10052a00
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], 0
shr eax, 1
mov dword [esp + 0x2c], eax
je 0x100546a6
mov eax, dword [esp + 0x7c]
xor edx, edx
mov dword [esp + 0x100], ebx
mov dword [esp + 0xa4], esi
lea ecx, [esp + eax*4 + 0x1c0]
mov dword [esp], ecx
lea ecx, [esp + eax*4 + 0x200]
mov dword [esp + 0x28], ecx
lea eax, [esp + eax*4 + 0x380]
mov dword [esp + 0x10], eax
mov dword [esp + 0x128], edi
mov ecx, edx
mov ebx, dword [esp]
mov eax, dword [esp + 0xc]
lea esi, [esi]
mov esi, dword [esp + 0x28]
inc edx
mov edi, dword [esp + 0x10]
mov dword [esp], edx
add eax, dword [ecx + esi]
mov edx, dword [ecx + ebx]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [ecx + edi], edx
mov edx, eax
setb dl
add edx, dword [ecx + esi - 4]
mov esi, dword [ecx + ebx - 4]
add esi, edx
cmp esi, edx
mov edx, dword [esp]
mov dword [ecx + edi - 4], esi
setb al
add ecx, 0xfffffff8
cmp edx, dword [esp + 0x2c]
jb 0x10052940
mov dword [esp + 0xc], eax
lea edx, [edx + edx + 1]
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
lea eax, [edx - 1]
cmp eax, dword [esp + 0x7c]
jae 0x100529fa
shl edx, 2
mov dword [esp + 0xa4], esi
neg edx
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x100], ebx
lea ecx, [esp + esi*4 + 0x200]
add eax, dword [edx + ecx + 4]
lea ebx, [esp + esi*4 + 0x1c0]
add eax, dword [edx + ebx + 4]
lea ecx, [esp + esi*4 + 0x380]
mov dword [edx + ecx + 4], eax
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xa4]
mov eax, dword [edx]
jmp 0x10052a00
mov eax, dword [esp + 4]
mov eax, dword [eax]
test eax, eax
jne 0x10052a26
mov edx, dword [esp + 8]
dec edx
lea eax, [esp + edx*4 + 0x380]
cmp dword [eax], 0
je 0x10052a08
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, edx
lea edx, [eax - 1]
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x384]
test eax, eax
jle 0x10052adb
dec dword [esp + 0x14]
add eax, eax
mov dword [esp + 0x384], eax
cmp dword [esp + 8], 2
jb 0x10052adb
mov eax, dword [esp + 8]
lea ecx, [eax - 1]
shr ecx, 1
je 0x1005469c
mov dword [esp + 0xa4], esi
xor edx, edx
mov dword [esp + 0x128], edi
mov eax, dword [esp + edx*8 + 0x388]
mov esi, eax
shr esi, 0x1f
add eax, eax
or dword [esp + edx*8 + 0x384], esi
mov esi, dword [esp + edx*8 + 0x38c]
mov edi, esi
shr edi, 0x1f
add esi, esi
or eax, edi
mov dword [esp + edx*8 + 0x388], eax
mov dword [esp + edx*8 + 0x38c], esi
inc edx
cmp edx, ecx
jb 0x10052a6c
mov esi, dword [esp + 0xa4]
lea eax, [edx + edx + 1]
mov edi, dword [esp + 0x128]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x7c]
jae 0x10052adb
mov ecx, dword [esp + eax*4 + 0x384]
mov edx, ecx
shr edx, 0x1f
add ecx, ecx
or dword [esp + eax*4 + 0x380], edx
mov dword [esp + eax*4 + 0x384], ecx
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x7c]
cmp dword [eax], 0
je 0x10052aec
mov edx, dword [esp + 8]
mov dword [esp + 0x7c], edx
cmp edx, 4
jb 0x10052ba0
mov eax, dword [esp + 0x394]
shr eax, 0x1f
mov edx, dword [esp + 0x390]
add edx, eax
mov dword [esp + 0x390], edx
cmp edx, eax
jae 0x10052b7c
mov eax, 3
mov dword [esp + 0x380], 0
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x38c], 0xffffffff
je 0x10052b40
lea ecx, [esp + 0x38c]
mov eax, dword [ecx]
jmp 0x10052b5c
mov edx, eax
dec edx
lea ecx, [esp + edx*4 + 0x380]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x10052b42
mov dword [esp + 0x7c], edx
cmp dword [esp + 0x7c], 0
je 0x10052b61
inc eax
mov dword [ecx], eax
jmp 0x10052ba9
inc dword [esp + 0x14]
lea ecx, [esp + 0x384]
mov dword [ecx], SysReAllocStringLen
mov dword [esp + 0x7c], 1
jmp 0x10052ba9
mov eax, 4
mov dword [esp + 0x7c], eax
test edx, edx
jne 0x100545f9
dec eax
lea ecx, [esp + eax*4 + 0x380]
cmp dword [ecx], 0
je 0x10052b8d
mov dword [esp + 0x7c], eax
jmp 0x10052ba9
mov eax, edx
lea ecx, [esp + eax*4 + 0x380]
cmp dword [esp + 0xdc], 0
je 0x10053169
mov eax, dword [esp + 0xdc]
mov edx, dword [esp + 0x7c]
lea edx, [eax + edx - 1]
mov dword [esp + 8], edx
mov edx, dword [ecx]
mov eax, dword [esp + eax*4 + 0x300]
mov dword [esp + 0x64], edx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x64]
mul dword [esp + 0x68]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], edx
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x70]
mov dword [esp + eax*4 + 0x1c0], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + eax*4 + 0x1c4], edx
mov eax, dword [esp + 0xdc]
dec eax
je 0x10052cba
mov dword [esp + 0xa4], esi
mov dword [esp + 0x100], ebx
mov ebx, ecx
mov dword [esp + 0x128], edi
mov ecx, eax
mov esi, dword [esp + 8]
mov edx, dword [ebx]
mov edi, dword [esp + ecx*4 + 0x300]
mov dword [esp + esi*4 + 0x200], 0
mov dword [esp + 0xf0], edx
mov dword [esp + 0xf4], edi
mov eax, dword [esp + 0xf0]
mul dword [esp + 0xf4]
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], edx
mov edi, dword [esp + 0xf8]
mov edx, dword [esp + esi*4 + 0x1c0]
add edx, edi
cmp edx, edi
mov dword [esp + esi*4 + 0x1c0], edx
mov edx, 0
setb dl
dec esi
add edx, dword [esp + 0xfc]
mov dword [esp + esi*4 + 0x1c0], edx
dec ecx
jne 0x10052c30
mov dword [esp + 8], esi
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
mov eax, dword [esp + 8]
mov dword [esp + eax*4 + 0x200], 0
dec eax
js 0x10052d86
mov eax, dword [esp + 8]
shr eax, 1
mov dword [esp + 0xc], eax
je 0x10054692
mov ecx, dword [esp + 8]
xor eax, eax
mov dword [esp + 0x100], ebx
mov dword [esp + 0xa4], esi
lea edx, [esp + ecx*4 + 0x1bc]
mov dword [esp + 4], edx
lea edx, [esp + ecx*4 + 0x1fc]
mov dword [esp], edx
mov dword [esp + 0x128], edi
xor edi, edi
mov edx, eax
mov ecx, dword [esp]
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0xc]
inc eax
mov dword [edx + ecx], edi
mov dword [edx + ebx], edi
mov dword [edx + ecx - 4], edi
mov dword [edx + ebx - 4], edi
add edx, 0xfffffff8
cmp eax, esi
jb 0x10052d1f
mov ebx, dword [esp + 0x100]
lea edx, [eax + eax + 1]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
lea eax, [edx - 1]
cmp eax, dword [esp + 8]
jae 0x10052d86
shl edx, 2
xor eax, eax
mov dword [esp + 0x100], ebx
neg edx
mov ebx, dword [esp + 8]
lea ecx, [esp + ebx*4 + 0x1fc]
mov dword [edx + ecx + 4], eax
lea ecx, [esp + ebx*4 + 0x1bc]
mov dword [edx + ecx + 4], eax
mov ebx, dword [esp + 0x100]
mov eax, dword [esp + 0x7c]
dec eax
je 0x10052e61
mov dword [esp + 0x100], ebx
mov dword [esp + 0xa4], esi
mov dword [esp + 0x128], edi
mov edx, dword [esp + 0xdc]
mov esi, edx
test edx, edx
je 0x10052e45
mov dword [esp], eax
lea ebx, [esp + eax*4 + 0x200]
lea ecx, [esp + eax*4 + 0x1c0]
mov eax, dword [esp]
mov edi, dword [esp + esi*4 + 0x300]
mov dword [esp + 0x198], edi
mov edx, dword [esp + eax*4 + 0x380]
mov dword [esp + 0x194], edx
mov eax, dword [esp + 0x194]
mul dword [esp + 0x198]
mov dword [esp + 0x19c], eax
mov dword [esp + 0x1a0], edx
mov edi, dword [esp + 0x19c]
mov edx, dword [ecx + esi*4]
add edx, edi
mov dword [ecx + esi*4], edx
xor eax, eax
cmp edx, edi
mov edx, 0
setb al
add eax, dword [esp + 0x1a0]
mov edi, dword [ecx + esi*4 - 4]
add edi, eax
cmp edi, eax
mov dword [ecx + esi*4 - 4], edi
setb dl
add dword [ebx + esi*4 - 8], edx
dec esi
jne 0x10052dc8
mov eax, dword [esp]
mov edx, dword [esp + 0xdc]
dec eax
jne 0x10052dad
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
mov edx, dword [esp + 0x14]
add edx, dword [esp + 0x74]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0xdc]
mov ecx, dword [esp + 0x7c]
lea eax, [ecx + edx]
mov dword [esp + 8], eax
lea ecx, [ecx + edx - 1]
mov dword [esp + 0x7c], ecx
lea edx, [esp + eax*4 + 0x380]
mov dword [esp + 4], edx
cmp eax, 1
mov eax, dword [edx - 0x1c0]
mov dword [edx], eax
je 0x10052fc0
mov eax, ecx
mov dword [esp + 0xc], 0
shr eax, 1
mov dword [esp + 0x2c], eax
je 0x10054688
mov eax, ecx
xor edx, edx
mov dword [esp + 0x100], ebx
mov dword [esp + 0xa4], esi
lea ecx, [esp + eax*4 + 0x380]
mov dword [esp + 0x28], ecx
lea ecx, [esp + eax*4 + 0x1c0]
mov dword [esp], ecx
lea eax, [esp + eax*4 + 0x200]
mov dword [esp + 0x10], eax
mov dword [esp + 0x128], edi
mov ecx, edx
mov ebx, dword [esp]
mov eax, dword [esp + 0xc]
nop
lea esi, [esi]
mov esi, dword [esp + 0x10]
inc edx
mov edi, dword [esp + 0x28]
mov dword [esp], edx
add eax, dword [ecx + esi]
mov edx, dword [ecx + ebx]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [ecx + edi], edx
mov edx, eax
setb dl
add edx, dword [ecx + esi - 4]
mov esi, dword [ecx + ebx - 4]
add esi, edx
cmp esi, edx
mov edx, dword [esp]
mov dword [ecx + edi - 4], esi
setb al
add ecx, 0xfffffff8
cmp edx, dword [esp + 0x2c]
jb 0x10052f00
mov dword [esp + 0xc], eax
lea edx, [edx + edx + 1]
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
lea eax, [edx - 1]
cmp eax, dword [esp + 0x7c]
jae 0x10052fba
shl edx, 2
mov dword [esp + 0xa4], esi
neg edx
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x100], ebx
lea ecx, [esp + esi*4 + 0x200]
add eax, dword [edx + ecx + 4]
lea ebx, [esp + esi*4 + 0x1c0]
add eax, dword [edx + ebx + 4]
lea ecx, [esp + esi*4 + 0x380]
mov dword [edx + ecx + 4], eax
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xa4]
mov eax, dword [edx]
jmp 0x10052fc0
mov eax, dword [esp + 4]
mov eax, dword [eax]
test eax, eax
jne 0x10052fe6
mov edx, dword [esp + 8]
dec edx
lea eax, [esp + edx*4 + 0x380]
cmp dword [eax], 0
je 0x10052fc8
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, edx
lea edx, [eax - 1]
mov dword [esp + 0x7c], edx
mov eax, dword [esp + 0x384]
test eax, eax
jle 0x1005309b
dec dword [esp + 0x14]
add eax, eax
mov dword [esp + 0x384], eax
cmp dword [esp + 8], 2
jb 0x1005309b
mov eax, dword [esp + 8]
lea ecx, [eax - 1]
shr ecx, 1
je 0x1005467e
mov dword [esp + 0xa4], esi
xor edx, edx
mov dword [esp + 0x128], edi
mov eax, dword [esp + edx*8 + 0x388]
mov esi, eax
shr esi, 0x1f
add eax, eax
or dword [esp + edx*8 + 0x384], esi
mov esi, dword [esp + edx*8 + 0x38c]
mov edi, esi
shr edi, 0x1f
add esi, esi
or eax, edi
mov dword [esp + edx*8 + 0x388], eax
mov dword [esp + edx*8 + 0x38c], esi
inc edx
cmp edx, ecx
jb 0x1005302c
mov esi, dword [esp + 0xa4]
lea eax, [edx + edx + 1]
mov edi, dword [esp + 0x128]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x7c]
jae 0x1005309b
mov ecx, dword [esp + eax*4 + 0x384]
mov edx, ecx
shr edx, 0x1f
add ecx, ecx
or dword [esp + eax*4 + 0x380], edx
mov dword [esp + eax*4 + 0x384], ecx
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x7c]
cmp dword [eax], 0
je 0x100530ac
mov edx, dword [esp + 8]
mov dword [esp + 0x7c], edx
cmp edx, 4
jb 0x10053160
mov eax, dword [esp + 0x394]
shr eax, 0x1f
mov edx, dword [esp + 0x390]
add edx, eax
mov dword [esp + 0x390], edx
cmp edx, eax
jae 0x1005313c
mov eax, 3
mov dword [esp + 0x380], 0
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x38c], 0xffffffff
je 0x10053100
lea ecx, [esp + 0x38c]
mov eax, dword [ecx]
jmp 0x1005311c
mov edx, eax
dec edx
lea ecx, [esp + edx*4 + 0x380]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x10053102
mov dword [esp + 0x7c], edx
cmp dword [esp + 0x7c], 0
je 0x10053121
inc eax
mov dword [ecx], eax
jmp 0x10053169
inc dword [esp + 0x14]
lea ecx, [esp + 0x384]
mov dword [ecx], SysReAllocStringLen
mov dword [esp + 0x7c], 1
jmp 0x10053169
mov eax, 4
mov dword [esp + 0x7c], eax
test edx, edx
jne 0x10054611
dec eax
lea ecx, [esp + eax*4 + 0x380]
cmp dword [ecx], 0
je 0x1005314d
mov dword [esp + 0x7c], eax
jmp 0x10053169
mov eax, edx
lea ecx, [esp + eax*4 + 0x380]
mov eax, dword [ecx]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x104]
lea edx, [ecx + eax]
mov dword [esp + 8], edx
lea edx, [ecx + eax - 1]
mov dword [esp + 0xc], edx
mov ecx, dword [esp + 0x90]
mov eax, dword [ecx]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x80]
mul dword [esp + 0x84]
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], edx
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x88]
mov dword [esp + ecx*4 + 0x1c0], eax
mov dword [esp + ecx*4 + 0x1c4], edx
mov ecx, dword [esp + 0x7c]
dec ecx
je 0x1005328a
mov dword [esp + 0x100], ebx
mov dword [esp + 0xa4], esi
mov dword [esp + 0x128], edi
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x90]
mov eax, dword [esi]
mov edx, dword [esp + ecx*4 + 0x380]
mov dword [esp + ebx*4 + 0x200], 0
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], edx
mov eax, dword [esp + 0x108]
mul dword [esp + 0x10c]
mov dword [esp + 0x110], eax
mov dword [esp + 0x114], edx
mov edi, dword [esp + 0x110]
xor edx, edx
mov eax, dword [esp + ebx*4 + 0x1c0]
add eax, edi
cmp eax, edi
mov dword [esp + ebx*4 + 0x1c0], eax
setb dl
dec ebx
add edx, dword [esp + 0x114]
mov dword [esp + ebx*4 + 0x1c0], edx
dec ecx
jne 0x10053203
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
mov eax, dword [esp + 0xc]
mov dword [esp + eax*4 + 0x200], 0
dec eax
js 0x10053356
mov eax, dword [esp + 0xc]
shr eax, 1
mov dword [esp + 0x10], eax
je 0x10054674
mov ecx, dword [esp + 0xc]
xor eax, eax
mov dword [esp + 0x100], ebx
mov dword [esp + 0xa4], esi
lea edx, [esp + ecx*4 + 0x1bc]
mov dword [esp + 4], edx
lea edx, [esp + ecx*4 + 0x1fc]
mov dword [esp], edx
mov dword [esp + 0x128], edi
xor edi, edi
mov edx, eax
mov ecx, dword [esp]
mov ebx, dword [esp + 4]
mov esi, dword [esp + 0x10]
inc eax
mov dword [edx + ecx], edi
mov dword [edx + ebx], edi
mov dword [edx + ecx - 4], edi
mov dword [edx + ebx - 4], edi
add edx, 0xfffffff8
cmp eax, esi
jb 0x100532ef
mov ebx, dword [esp + 0x100]
lea edx, [eax + eax + 1]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
lea eax, [edx - 1]
cmp eax, dword [esp + 0xc]
jae 0x10053356
shl edx, 2
xor eax, eax
mov dword [esp + 0x100], ebx
neg edx
mov ebx, dword [esp + 0xc]
lea ecx, [esp + ebx*4 + 0x1fc]
mov dword [edx + ecx + 4], eax
lea ecx, [esp + ebx*4 + 0x1bc]
mov dword [edx + ecx + 4], eax
mov ebx, dword [esp + 0x100]
mov eax, dword [esp + 0x104]
dec eax
je 0x1005342e
mov dword [esp + 0x100], ebx
mov dword [esp + 0xa4], esi
mov dword [esp + 0x128], edi
mov edx, dword [esp + 0x7c]
mov esi, edx
test edx, edx
je 0x10053412
mov dword [esp], eax
lea ebx, [esp + eax*4 + 0x200]
lea ecx, [esp + eax*4 + 0x1c0]
mov eax, dword [esp]
mov edi, dword [esp + esi*4 + 0x380]
mov dword [esp + 0x1ac], edi
mov edx, dword [esp + eax*4 + 0x340]
mov dword [esp + 0x1a8], edx
mov eax, dword [esp + 0x1a8]
mul dword [esp + 0x1ac]
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1b4], edx
mov edi, dword [esp + 0x1b0]
mov edx, dword [ecx + esi*4]
add edx, edi
mov dword [ecx + esi*4], edx
xor eax, eax
cmp edx, edi
mov edx, 0
setb al
add eax, dword [esp + 0x1b4]
mov edi, dword [ecx + esi*4 - 4]
add edi, eax
cmp edi, eax
mov dword [ecx + esi*4 - 4], edi
setb dl
add dword [ebx + esi*4 - 8], edx
dec esi
jne 0x10053398
mov eax, dword [esp]
mov edx, dword [esp + 0x7c]
dec eax
jne 0x1005337d
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x104]
mov eax, dword [esp + 0x158]
add eax, dword [esp + 0x14]
mov dword [esp + 0x158], eax
lea eax, [edx + ecx - 1]
mov edx, dword [esp + 8]
mov dword [esp + 0x104], eax
mov eax, dword [esp + edx*4 + 0x1c0]
lea ecx, [esp + edx*4 + 0x340]
mov dword [esp + 4], ecx
mov dword [ecx], eax
cmp edx, 1
je 0x100535a6
mov eax, dword [esp + 0x104]
mov dword [esp + 0xc], 0
shr eax, 1
mov dword [esp + 0x28], eax
je 0x1005466a
mov eax, dword [esp + 0x104]
xor edx, edx
mov dword [esp + 0x100], ebx
mov dword [esp + 0xa4], esi
lea ecx, [esp + eax*4 + 0x340]
mov dword [esp + 0x14], ecx
lea ecx, [esp + eax*4 + 0x1c0]
mov dword [esp], ecx
lea eax, [esp + eax*4 + 0x200]
mov dword [esp + 0x10], eax
mov dword [esp + 0x128], edi
mov ecx, edx
mov ebx, dword [esp]
mov eax, dword [esp + 0xc]
lea esi, [esi]
mov esi, dword [esp + 0x10]
inc edx
mov edi, dword [esp + 0x14]
mov dword [esp], edx
add eax, dword [ecx + esi]
mov edx, dword [ecx + ebx]
add edx, eax
cmp edx, eax
mov eax, 0
mov dword [ecx + edi], edx
mov edx, eax
setb dl
add edx, dword [ecx + esi - 4]
mov esi, dword [ecx + ebx - 4]
add esi, edx
cmp esi, edx
mov edx, dword [esp]
mov dword [ecx + edi - 4], esi
setb al
add ecx, 0xfffffff8
cmp edx, dword [esp + 0x28]
jb 0x100534e0
mov dword [esp + 0xc], eax
lea edx, [edx + edx + 1]
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
lea eax, [edx - 1]
cmp eax, dword [esp + 0x104]
jae 0x100535a0
shl edx, 2
mov dword [esp + 0xa4], esi
neg edx
mov esi, dword [esp + 0x104]
mov eax, dword [esp + 0xc]
mov dword [esp + 0x100], ebx
lea ecx, [esp + esi*4 + 0x200]
add eax, dword [edx + ecx + 4]
lea ebx, [esp + esi*4 + 0x1c0]
add eax, dword [edx + ebx + 4]
lea ecx, [esp + esi*4 + 0x340]
mov dword [edx + ecx + 4], eax
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xa4]
mov eax, dword [edx]
jmp 0x100535a6
mov eax, dword [esp + 4]
mov eax, dword [eax]
test eax, eax
jne 0x100535d0
mov ecx, dword [esp + 8]
dec ecx
lea edx, [esp + ecx*4 + 0x340]
mov eax, dword [edx]
test eax, eax
je 0x100535ae
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov edx, ecx
lea ecx, [edx - 1]
mov dword [esp + 0x104], ecx
mov edx, dword [esp + 0x344]
test edx, edx
jle 0x10053699
dec dword [esp + 0x158]
add edx, edx
mov dword [esp + 0x344], edx
cmp dword [esp + 8], 2
jb 0x10053693
mov eax, dword [esp + 8]
lea ecx, [eax - 1]
shr ecx, 1
je 0x1005461d
mov dword [esp + 0xa4], esi
xor edx, edx
mov dword [esp + 0x128], edi
mov eax, dword [esp + edx*8 + 0x348]
mov esi, eax
shr esi, 0x1f
add eax, eax
or dword [esp + edx*8 + 0x344], esi
mov esi, dword [esp + edx*8 + 0x34c]
mov edi, esi
shr edi, 0x1f
add esi, esi
or eax, edi
mov dword [esp + edx*8 + 0x348], eax
mov dword [esp + edx*8 + 0x34c], esi
inc edx
cmp edx, ecx
jb 0x10053619
mov esi, dword [esp + 0xa4]
lea eax, [edx + edx + 1]
mov edi, dword [esp + 0x128]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x104]
jae 0x10053693
mov ecx, dword [esp + eax*4 + 0x344]
mov edx, ecx
shr edx, 0x1f
add ecx, ecx
or dword [esp + eax*4 + 0x340], edx
mov dword [esp + eax*4 + 0x344], ecx
mov eax, dword [esp + 4]
mov eax, dword [eax]
jmp 0x10053699
mov eax, dword [esp + 4]
mov eax, dword [eax]
test eax, eax
mov eax, dword [esp + 0x104]
je 0x100536a8
mov eax, dword [esp + 8]
mov dword [esp + 0x104], eax
mov eax, edi
shr eax, 0x16
and eax, 7
mov edx, dword [esp + 0x148]
or edx, eax
jne 0x100536c7
mov eax, 6
mov edx, eax
and edx, 2
test al, 4
je 0x100536e4
test edx, edx
mov edx, 0xaaaa
jne 0x100536de
mov edx, 0xfa
mov dword [esp + 0x28], edx
jmp 0x10053704
test edx, edx
je 0x100536f2
mov dword [esp + 0x28], 0xfa00
jmp 0x10053704
mov edx, 0xa8a8
test al, 1
je 0x10053700
mov edx, 0
mov dword [esp + 0x28], edx
cmp eax, 2
je 0x1005370e
cmp eax, 4
jne 0x10053715
mov ecx, 1
jmp 0x10053717
xor ecx, ecx
mov eax, dword [esp + 0x158]
lea edx, [eax + 0x406e]
mov dword [esp + 0x7c], edx
cmp edx, 0x71
jle 0x10053737
mov dword [esp + 0x7c], 0x71
jmp 0x10053742
cmp dword [esp + 0x7c], 0
js 0x10053ae7
mov eax, dword [esp + 0x7c]
mov edx, eax
and eax, 0x1f
mov dword [esp + 0x7c], eax
mov eax, 0
setne al
sar edx, 5
mov dword [esp + 0x78], edx
mov dword [esp + 0x60], eax
add edx, eax
mov dword [esp + 0x74], edx
cmp edx, dword [esp + 0x104]
jbe 0x10053779
test ecx, ecx
je 0x10053ab0
mov eax, dword [esp + 0x104]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x104], edx
test edx, edx
je 0x10053a3e
mov eax, dword [esp + 0x74]
cmp dword [esp + 0x7c], 0
mov edx, dword [esp + eax*4 + 0x340]
mov dword [esp + 8], edx
je 0x100538b4
mov eax, edx
mov edx, dword [esp + 0x7c]
neg edx
mov dword [esp + 0x100], ebx
mov ebx, eax
lea ecx, [edx + 0x1f]
add edx, 0x20
shr ebx, cl
and ebx, 1
mov dword [esp], ecx
mov ecx, edx
mov dword [esp + 0x10], ebx
mov ebx, 1
shl ebx, cl
mov edx, 1
mov dword [esp + 0x14], ebx
mov ebx, eax
shr ebx, cl
mov ecx, dword [esp]
and ebx, 1
shl edx, cl
dec edx
and edx, eax
mov eax, dword [esp + 0x2c]
or dword [esp + 0x12c], edx
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x100]
cmp eax, dword [esp + 0x74]
jbe 0x10053997
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x78]
lea edx, [edx + eax + 1]
cmp edx, dword [esp + 0x2c]
ja 0x10053997
mov eax, dword [esp + 0x2c]
sub eax, edx
inc eax
mov dword [esp + 0x2c], eax
shr eax, 1
mov dword [esp + 4], eax
je 0x10054627
mov dword [esp + 0xa4], esi
lea ecx, [esp + edx*4 + 0x340]
mov dword [esp], ecx
xor eax, eax
mov dword [esp + 0x128], edi
mov ecx, dword [esp + 0x12c]
mov esi, dword [esp]
mov edi, dword [esp + 4]
or ecx, dword [esi + eax*8]
or ecx, dword [esi + eax*8 + 4]
inc eax
cmp eax, edi
jb 0x10053866
mov dword [esp + 0x12c], ecx
lea ecx, [eax + eax + 1]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
lea eax, [ecx - 1]
cmp eax, dword [esp + 0x2c]
jae 0x10053997
add edx, ecx
mov eax, dword [esp + 0x12c]
or eax, dword [esp + edx*4 + 0x33c]
mov dword [esp + 0x12c], eax
jmp 0x10053997
mov ecx, eax
and edx, 1
mov dword [esp + 0xc], edx
mov edx, dword [esp + ecx*4 + 0x344]
mov eax, edx
shr eax, 0x1f
add edx, edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x78]
or dword [esp + 0x12c], edx
lea eax, [ecx + eax + 1]
cmp eax, dword [esp + 0x2c]
jae 0x1005398f
mov eax, dword [esp + 0x60]
lea edx, [ecx + eax + 2]
lea eax, [ecx + 2]
cmp eax, dword [esp + 0x2c]
ja 0x1005398f
mov eax, dword [esp + 0x2c]
sub eax, edx
inc eax
mov dword [esp + 0x2c], eax
shr eax, 1
mov dword [esp + 4], eax
je 0x10054631
mov dword [esp + 0xa4], esi
lea ecx, [esp + edx*4 + 0x340]
mov dword [esp], ecx
xor eax, eax
mov dword [esp + 0x128], edi
mov ecx, dword [esp + 0x12c]
mov esi, dword [esp]
mov edi, dword [esp + 4]
or ecx, dword [esi + eax*8]
or ecx, dword [esi + eax*8 + 4]
inc eax
cmp eax, edi
jb 0x10053940
mov dword [esp + 0x12c], ecx
lea ecx, [eax + eax + 1]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
mov dword [esp + 0x14], 1
lea eax, [ecx - 1]
cmp eax, dword [esp + 0x2c]
jae 0x10053997
add edx, ecx
mov eax, dword [esp + 0x12c]
or eax, dword [esp + edx*4 + 0x33c]
mov dword [esp + 0x12c], eax
jmp 0x10053997
mov dword [esp + 0x14], 1
mov ecx, dword [esp + 0x10]
xor eax, eax
mov edx, dword [esp + 0xc]
cmp dword [esp + 0x12c], 0
setne al
lea edx, [ecx + edx*2]
mov ecx, ebx
and ecx, 8
lea ecx, [ecx + eax*4]
add ecx, edx
mov edx, dword [esp + 0x28]
shr edx, cl
test dl, 1
je 0x10053ab0
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x14]
add eax, edx
mov dword [esp + 8], eax
cmp eax, edx
jae 0x10053a62
mov ecx, dword [esp + 0x74]
mov edx, eax
mov eax, dword [esp + 0x60]
mov dword [esp + ecx*4 + 0x340], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x340], 0
lea eax, [edx + eax - 1]
mov dword [esp + 0x104], eax
lea edx, [esp + eax*4 + 0x340]
mov eax, dword [edx]
cmp eax, 0xffffffff
jne 0x10053a34
mov ecx, dword [esp + 0x104]
dec ecx
lea edx, [esp + ecx*4 + 0x340]
mov eax, dword [edx]
cmp eax, 0xffffffff
je 0x10053a1e
mov dword [esp + 0x104], ecx
cmp dword [esp + 0x104], 0
jne 0x10053a5d
inc dword [esp + 0x158]
mov dword [esp + 0x344], VariantInit
mov dword [esp + 0x104], 1
jmp 0x10053ab0
inc eax
mov dword [edx], eax
jmp 0x10053ab0
cmp dword [esp + 0x7c], 0
je 0x10053a85
mov ecx, dword [esp + 0x74]
mov eax, edx
dec eax
not eax
mov edx, dword [esp + 8]
and edx, eax
mov dword [esp + 8], edx
mov dword [esp + ecx*4 + 0x340], edx
jmp 0x10053a90
mov edx, dword [esp + 0x74]
mov dword [esp + edx*4 + 0x340], eax
cmp dword [esp + 8], 0
jne 0x10053ab0
mov eax, dword [esp + 0x104]
dec eax
cmp dword [esp + eax*4 + 0x340], 0
je 0x10053a9e
mov dword [esp + 0x104], eax
cmp dword [esp + 0x158], 0x4000
jg 0x10053ae7
cmp dword [esp + 0x158], 0xffffc002
jg 0x10053ba6
cmp dword [esp + 0x158], 0xffffbf93
jl 0x10053ae7
test edi, 0x10000000
je 0x10053b95
test ebx, 0x80
je 0x10053b42
test bl, 8
je 0x10053afb
mov eax, 0x102168b0
jmp 0x10053b00
mov eax, 0x102168a0
mov edx, dword [eax]
mov dword [esp + 0x3c0], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x3c8], edx
mov edx, ebx
or edx, 0x9000000
test edi, 0x4000
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x3c4], ecx
mov dword [esp + 0x3cc], eax
je 0x10053e80
mov ebx, edx
jmp 0x10053e80
test bl, 8
je 0x10053b4e
mov eax, 0x102168f0
jmp 0x10053b53
mov eax, 0x102168e0
mov edx, dword [eax]
mov dword [esp + 0x3c0], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x3c8], edx
mov edx, ebx
or edx, 0x8000000
test edi, 0x2000
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x3c4], ecx
mov dword [esp + 0x3cc], eax
je 0x10053e80
mov ebx, edx
jmp 0x10053e80
mov eax, ebx
or eax, 0x9000000
test edi, 0x4000
je 0x10053ba6
mov ebx, eax
mov eax, dword [esp + 0x344]
mov dword [esp + 4], eax
cmp dword [esp + 0x104], 2
jae 0x10053bc5
mov dword [esp + 0xc], 0
jmp 0x10053bd0
mov eax, dword [esp + 0x348]
mov dword [esp + 0xc], eax
cmp dword [esp + 0x104], 3
jae 0x10053be4
mov dword [esp + 8], 0
jmp 0x10053bef
mov eax, dword [esp + 0x34c]
mov dword [esp + 8], eax
cmp dword [esp + 0x104], 4
jae 0x10053c03
mov dword [esp + 0x10], 0
jmp 0x10053c0e
mov eax, dword [esp + 0x350]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x158], 0xffffc002
jle 0x10053c87
mov edx, dword [esp + 8]
mov dword [esp + 0x100], ebx
mov ebx, edx
mov eax, dword [esp + 0x10]
shr eax, 0xf
shl ebx, 0x11
or eax, ebx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
mov ebx, eax
shr edx, 0xf
shl ebx, 0x11
mov ecx, dword [esp + 0x158]
or edx, ebx
mov ebx, dword [esp + 4]
shl ecx, 0x10
mov dword [esp + 8], edx
mov edx, ebx
shr ebx, 0xf
add ecx, 0x3ffe0000
and ebx, 0xfffeffff
shr eax, 0xf
or ebx, ecx
shl edx, 0x11
mov dword [esp + 4], ebx
or eax, edx
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x100]
jmp 0x10053e45
mov eax, dword [esp + 0x158]
neg eax
mov dword [esp + 0x158], eax
lea edx, [eax - 0x3fee]
mov dword [esp], edx
cmp edx, 0x20
jl 0x10053dd3
mov eax, dword [esp + 8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x158]
mov edx, dword [esp + 0xc]
mov dword [esp + 8], edx
mov ecx, dword [esp + 4]
lea edx, [eax - 0x400e]
mov dword [esp + 0xc], ecx
mov dword [esp], edx
mov dword [esp + 4], 0
cmp edx, 0x20
jl 0x10053dd3
mov edx, ecx
mov ecx, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x10], eax
lea eax, [ecx - 0x402e]
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 0xc], 0
cmp eax, 0x20
jl 0x1005465d
mov eax, edx
mov edx, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
lea ecx, [edx - 0x404e]
mov dword [esp], ecx
cmp ecx, 0x20
jl 0x1005464e
mov eax, edx
mov dword [esp + 0x10], 0
lea edx, [eax - 0x406e]
mov dword [esp], edx
cmp edx, 0x20
jl 0x1005463b
mov dword [esp + 0x10], 0
lea edx, [eax - 0x408e]
mov dword [esp], edx
cmp edx, 0x20
jl 0x1005463b
mov dword [esp + 0x10], 0
lea edx, [eax - 0x40ae]
mov dword [esp], edx
cmp edx, 0x20
jl 0x1005463b
mov dword [esp + 0x10], 0
lea edx, [eax - 0x40ce]
mov dword [esp], edx
cmp edx, 0x20
jl 0x1005463b
lea edx, [eax - 0x40ee]
mov dword [esp], edx
cmp edx, 0x20
jl 0x10053dc1
lea edx, [eax - 0x410e]
mov dword [esp], edx
cmp edx, 0x20
jl 0x10053dc1
mov eax, edx
add eax, 0xffffffe0
cmp eax, 0x20
jge 0x10053db6
mov dword [esp], eax
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
mov dword [esp + 4], eax
cmp dword [esp], 0
je 0x10053e45
mov ecx, dword [esp]
mov dword [esp + 0x100], ebx
mov ebx, ecx
neg ebx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 8]
mov dword [esp + 0xa4], esi
mov esi, edx
shr eax, cl
mov ecx, ebx
shl esi, cl
or eax, esi
mov dword [esp + 0x10], eax
mov ecx, dword [esp]
mov eax, dword [esp + 0xc]
mov esi, eax
shr edx, cl
mov ecx, ebx
shl esi, cl
mov ecx, dword [esp]
or edx, esi
mov esi, dword [esp + 4]
mov dword [esp + 8], edx
mov edx, esi
shr eax, cl
mov ecx, ebx
shl edx, cl
mov ecx, dword [esp]
or eax, edx
shr esi, cl
mov dword [esp + 4], esi
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xa4]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 8]
mov dword [esp + 0x3c0], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x3c4], edx
mov edx, eax
or edx, 0x80000000
test bl, 8
mov ecx, dword [esp + 0xc]
jne 0x10053e72
mov edx, eax
mov dword [esp + 0x3c8], ecx
mov dword [esp + 0x3cc], edx
cmp dword [esp + 0x150], 0
je 0x10053ead
test edi, 0x40000
je 0x10053e9d
mov eax, dword [esp + 0x150]
mov dword [eax], esi
jmp 0x10053ead
mov edx, dword [esp + 0x150]
mov eax, dword [esp + 0x14c]
mov dword [edx], eax
mov eax, dword [ebp + 0x24]
test eax, eax
je 0x10053eb9
shr ebx, 0x18
mov dword [eax], ebx
mov esi, dword [esp + 0x154]
mov eax, dword [esp + 0x3c0]
mov edx, dword [esp + 0x3c4]
mov ecx, dword [esp + 0x3c8]
mov ebx, dword [esp + 0x3cc]
mov dword [esi], eax
mov dword [esi + 4], edx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], ebx
mov ecx, dword [esp + 0x3d0]
mov dword [esp + 0x3d0], 0
xor ecx, esp
cmp ecx, dword [0x10234e38]
jne 0x10054465
mov eax, esi
add esp, 0x3d4
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [esp + edx*4 + 0x244], eax
lea ecx, [edx + 1]
mov eax, dword [esp + 0x244]
mov dword [esp + 0x1c4], eax
mov dword [esp + 0x104], ecx
mov eax, dword [0x10216924]
cmp ecx, 2
jb 0x10054830
mov ecx, 2
je 0x10053f78
mov dword [esp + 0x128], edi
mov dword [esp + 0x100], ebx
mov ebx, eax
mov dword [esp + 0xa4], esi
xor eax, eax
mov edi, dword [esp + 0x104]
mov edx, dword [esp + 0x28]
jmp 0x10053fa1
mov dword [esp + 0x128], edi
xor eax, eax
mov dword [esp + 0x100], ebx
mov dword [esp + 0xa4], esi
mov edi, dword [esp + 0x104]
mov edx, dword [esp + 0x28]
mov ebx, dword [edx*4 + 0x10216900]
mov edx, dword [esp + 0x1c4]
cmp ecx, 1
jle 0x10054b53
mov dword [esp + 0x1c4], 0
mov esi, 1
mov dword [esp + 0x104], edi
mov dword [esp + 0x164], edx
mov dword [esp + 0x160], ebx
mov eax, dword [esp + 0x160]
mul dword [esp + 0x164]
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], edx
mov edi, dword [esp + 0x168]
mov eax, dword [esp + esi*4 + 0x1c0]
add eax, edi
cmp eax, edi
mov dword [esp + esi*4 + 0x1c0], eax
mov eax, 0
setb al
add eax, dword [esp + 0x16c]
mov edx, dword [esp + esi*4 + 0x1c4]
mov dword [esp + esi*4 + 0x1c4], eax
inc esi
cmp esi, ecx
jl 0x10053fc8
mov edi, dword [esp + 0x104]
xor eax, eax
mov esi, dword [esp + 0x1c4]
mov edx, dword [esp + ecx*4 + 0x240]
add esi, edx
mov dword [esp + 0x1c4], esi
cmp esi, edx
jae 0x10054097
mov dword [esp + ecx*4 + 0x1c4], 0
mov edx, 2
cmp dword [esp + 0x1c8], 0xffffffff
je 0x10054076
lea edx, [esp + 0x1c8]
mov esi, dword [edx]
jmp 0x10054094
mov dword [esp + edx*4 + 0x1c0], 0
inc edx
lea eax, [esp + edx*4 + 0x1c0]
mov esi, dword [eax]
cmp esi, 0xffffffff
je 0x10054076
mov edx, eax
xor eax, eax
inc esi
mov dword [edx], esi
inc ecx
cmp ecx, edi
ja 0x10054814
jne 0x10053fa1
lea esi, [esi]
lea edi, [edi]
mov edx, dword [esp + 0x28]
jmp 0x10053f9a
xor eax, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x12c], eax
jmp 0x10050a36
call fcn.101a6152
mov dword [esp + 0x1a4], edi
mov edx, dword [esp]
jmp 0x10050935
mov dword [esp + 0x14c], esi
mov eax, dword [esp + 0x98]
mov edi, dword [esp + 0x128]
jmp 0x10050a3d
mov dword [esp], 1
jmp 0x10050cd3
mov eax, dword [esp + 0x104]
shr eax, 1
mov dword [esp + 4], eax
je 0x100545a2
mov ecx, dword [esp + 0x104]
xor edx, edx
mov dword [esp + 0x100], ebx
mov dword [esp + 0xa4], esi
lea eax, [esp + ecx*4 + 0x340]
mov dword [esp], eax
lea eax, [esp + ecx*4 + 0x240]
mov dword [esp + 0x128], edi
mov ebx, edx
mov esi, dword [esp]
mov ecx, dword [esp + 4]
mov edi, dword [ebx + eax]
inc edx
mov dword [ebx + esi], edi
mov edi, dword [ebx + eax - 4]
mov dword [ebx + esi - 4], edi
add ebx, 0xfffffff8
cmp edx, ecx
jb 0x10054534
mov ebx, dword [esp + 0x100]
lea eax, [edx + edx + 1]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
mov dword [esp], eax
mov eax, dword [esp]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x104]
jae 0x10050da8
mov ecx, eax
shl ecx, 2
mov edx, dword [esp + 0x104]
neg ecx
lea eax, [esp + edx*4 + 0x240]
mov eax, dword [ecx + eax + 4]
lea edx, [esp + edx*4 + 0x340]
mov dword [ecx + edx + 4], eax
jmp 0x10050da8
mov dword [esp], 1
jmp 0x10054566
lea eax, [esp + 0x350]
mov dword [eax - 0x2c0], eax
jmp 0x10050fe8
mov edx, 1
jmp 0x10051637
mov edx, 1
jmp 0x10051550
mov edx, 1
jmp 0x1005135d
mov edx, 1
jmp 0x10051cb0
mov edx, 1
jmp 0x10051bc9
mov edx, 1
jmp 0x100519df
lea ecx, [esp + 0x390]
jmp 0x10052ba9
lea ecx, [esp + 0x390]
jmp 0x100525e9
lea ecx, [esp + 0x390]
jmp 0x10053169
mov eax, 1
jmp 0x10053663
mov ecx, 1
jmp 0x1005388b
mov ecx, 1
jmp 0x10053965
xor eax, eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], eax
mov dword [esp + 4], eax
jmp 0x10053dd3
xor eax, eax
mov dword [esp + 0xc], eax
mov dword [esp + 4], eax
jmp 0x10053dd3
mov dword [esp + 4], 0
jmp 0x10053dd3
mov edx, 1
jmp 0x1005353f
mov edx, 1
jmp 0x1005331e
mov eax, 1
jmp 0x10053076
mov edx, 1
jmp 0x10052f5f
mov edx, 1
jmp 0x10052d4e
mov eax, 1
jmp 0x10052ab6
mov edx, 1
jmp 0x1005299f
mov edx, 1
jmp 0x10052796
mov edx, 1
jmp 0x100524ea
mov edx, 1
jmp 0x100523d3
mov edx, 1
jmp 0x100521c4
lea ecx, [esp + 0x388]
jmp 0x1005202b
mov dword [esp + 0xa0], 0x1b
jmp 0x10051fd7
xor eax, eax
mov dword [esp + 0x288], eax
mov dword [esp + 0x284], eax
jmp 0x10051fd7
movsx edx, word [0x10216242]
xor eax, eax
mov ecx, dword [0x102160cc]
mov dword [esp + 0x288], eax
mov dword [esp + 0x284], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x384], ecx
mov eax, dword [0x102160c8]
mov edx, dword [0x102160c4]
mov ecx, dword [0x102160c0]
mov dword [esp + 0x388], eax
mov dword [esp + 0x38c], edx
mov dword [esp + 0x390], ecx
lea ecx, [esp + 0x390]
mov dword [esp + 0x7c], 4
jmp 0x100525e9
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x100], ebx
mov ebx, edx
neg ebx
mov dword [esp + 0xa4], esi
mov esi, ebx
sar esi, 3
mov dword [esp + 0x78], 4
movzx ecx, word [esi*2 + 0x10215fe0]
lea eax, [esi + 1]
shr ecx, 5
cmp ecx, ebx
jl 0x100547a5
mov eax, esi
movzx ecx, word [eax*2 + 0x10215fe0]
mov eax, ecx
and eax, 0x1f
shr ecx, 5
add edx, ecx
mov dword [esp + 0xa0], edx
movsx edx, word [eax*2 + 0x10216226]
shl eax, 4
mov dword [esp + 0x60], edx
mov ebx, dword [eax + 0x10215f4c]
mov esi, dword [eax + 0x10215f48]
mov edx, dword [eax + 0x10215f44]
mov eax, dword [eax + 0x10215f40]
mov dword [esp + 0x2c4], ebx
mov dword [esp + 0x2c8], esi
mov dword [esp + 0x2cc], edx
mov dword [esp + 0x2d0], eax
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xa4]
jmp 0x10051f62
mov dword [esp + 0x104], edi
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
mov eax, dword [esp + 0x104]
cmp dword [esp + eax*4 + 0x1c0], 0
jne 0x10054b36
mov dword [esp + 0x128], edi
mov edi, eax
dec edi
lea edx, [esp + edi*4 + 0x1c0]
mov ecx, dword [edx]
lea eax, [edi*4]
test ecx, ecx
je 0x1005484e
mov dword [esp + 0x104], edi
mov dword [esp + 4], ecx
mov edi, dword [esp + 0x128]
mov dword [esp + 0xc], 0
cmp dword [esp + 4], 0
jle 0x100548a7
mov dword [esp + 0x128], edi
mov edi, dword [esp + 0xc]
add ecx, ecx
inc edi
test ecx, ecx
jg 0x1005488f
mov dword [esp + 4], ecx
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x128]
mov dword [edx], ecx
mov edx, dword [esp + 0x104]
shl edx, 5
mov ecx, dword [esp + 0xc]
sub edx, ecx
mov dword [esp + 0x158], edx
test ecx, ecx
je 0x10054a0f
mov edx, dword [esp + 4]
mov dword [esp + 0x344], edx
mov edx, dword [esp + 0x104]
lea ecx, [edx - 1]
mov dword [esp], ecx
cmp edx, 1
je 0x10054aea
mov edx, ecx
lea eax, [esp + eax + 0x340]
mov dword [esp + 8], eax
shr edx, 1
mov dword [esp + 0x14], edx
je 0x10054b20
mov ecx, dword [esp + 0x104]
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x100], ebx
mov dword [esp + 0xa4], esi
lea edx, [esp + ecx*4 + 0x1bc]
mov dword [esp + 4], edx
lea ecx, [ecx*4 - 4]
neg ecx
mov edx, dword [esp + 0xc]
add ecx, dword [esp + 8]
neg edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x128], edi
nop
lea esi, [esi]
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov ebx, dword [edi + ebx]
mov edx, ebx
shr edx, cl
mov ecx, dword [esp + 4]
or dword [esi + eax*8], edx
mov edx, dword [edi + ecx - 4]
add edi, 0xfffffff8
mov dword [esp + 0x10], edi
mov edi, edx
mov ecx, dword [esp + 0xc]
shl ebx, cl
mov ecx, dword [esp + 0x28]
shr edi, cl
mov ecx, dword [esp + 0xc]
or ebx, edi
shl edx, cl
mov dword [esi + eax*8 + 4], ebx
mov dword [esi + eax*8 + 8], edx
inc eax
cmp eax, dword [esp + 0x14]
jb 0x10054950
mov ebx, dword [esp + 0x100]
lea eax, [eax + eax + 1]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
lea edx, [eax - 1]
cmp edx, dword [esp]
jae 0x10054af5
mov edx, eax
mov dword [esp + 0x100], ebx
mov ebx, dword [esp]
sub edx, ebx
sub ebx, eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xa4], esi
neg ecx
mov eax, dword [esp + ebx*4 + 0x1c4]
mov esi, eax
mov ebx, dword [esp + 8]
shr esi, cl
mov ecx, dword [esp + 0xc]
shl eax, cl
or dword [ebx + edx*4 - 4], esi
mov dword [ebx + edx*4], eax
mov ebx, dword [esp + 0x100]
mov esi, dword [esp + 0xa4]
jmp 0x10054af5
cmp dword [esp + 0x104], 0
je 0x10054aea
mov edx, dword [esp + 0x104]
lea ecx, [esp + eax + 0x340]
mov dword [esp + 8], ecx
shr edx, 1
mov dword [esp + 4], edx
je 0x10054b2a
mov ecx, dword [esp + 0x104]
xor edx, edx
neg eax
mov dword [esp + 0x100], ebx
mov dword [esp + 0xa4], esi
lea ecx, [esp + ecx*4 + 0x1c0]
mov dword [esp], ecx
add eax, dword [esp + 8]
mov ecx, edx
mov ebx, dword [esp]
mov esi, dword [esp + 4]
mov dword [esp + 0x128], edi
mov edi, dword [ecx + ebx]
mov dword [eax + edx*8 + 4], edi
mov edi, dword [ecx + ebx - 4]
add ecx, 0xfffffff8
mov dword [eax + edx*8 + 8], edi
inc edx
cmp edx, esi
jb 0x10054a72
mov ebx, dword [esp + 0x100]
lea eax, [edx + edx + 1]
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0x128]
mov dword [esp], eax
mov eax, dword [esp]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x104]
jae 0x10054af5
mov edx, eax
mov eax, dword [esp + 0x104]
mov dword [esp + 0x100], ebx
lea ecx, [edx*4]
sub edx, eax
neg ecx
lea ebx, [esp + eax*4 + 0x1c0]
mov eax, dword [esp + 8]
mov ecx, dword [ecx + ebx + 4]
mov dword [eax + edx*4], ecx
mov ebx, dword [esp + 0x100]
jmp 0x10054af5
lea eax, [esp + eax + 0x340]
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
cmp dword [eax], 0
jne 0x10050e73
mov eax, dword [esp + 0x104]
dec eax
cmp dword [esp + eax*4 + 0x340], 0
je 0x10054b09
mov dword [esp + 0x104], eax
jmp 0x10050e73
mov eax, 1
jmp 0x100549b7
mov dword [esp], 1
jmp 0x10054aa5
mov eax, dword [esp + 0x10]
lea eax, [eax*4 + 4]
lea edx, [esp + eax + 0x1c0]
mov ecx, dword [edx]
mov dword [esp + 4], ecx
jmp 0x10054875
mov esi, eax
jmp 0x1005403d
mov dword [esp + 0x144], eax
xor eax, eax
mov dword [esp + 0x14c], edx
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x12c], eax
jmp 0x10050a36
mov dword [esp + 0x170], ecx
mov ecx, dword [esp + 0x1a4]
mov edx, esi
jmp 0x1005052e
mov ebx, 0x6000000
jmp 0x10053e80