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

Disassembly:
endbr32
push esi
push edi
push ebx
push ebp
sub esp, 0x268
mov eax, dword [esp + 0x27c]
mov dword [esp + 0xc8], eax
mov edx, dword [esp + 0x288]
mov ecx, dword [esp + 0x28c]
mov eax, dword [esp + 0x290]
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], ecx
xor ecx, ecx
mov dword [esp + 0xc4], eax
mov edx, dword [0x10234e38]
xor edx, esp
mov ebp, dword [esp + 0x284]
mov dword [esp + 0x264], edx
mov esi, dword [esp + 0x280]
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x1b0], ecx
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x1f4], ecx
mov dword [esp + 0x1b8], ecx
mov dword [esp + 0x1f8], ecx
mov dword [esp + 0x1bc], ecx
mov dword [esp + 0x1fc], ecx
mov dword [esp + 0x1c0], ecx
mov dword [esp + 0x200], ecx
mov dword [esp + 0x1c4], ecx
mov dword [esp + 0x204], ecx
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x208], ecx
mov dword [esp + 0x1cc], ecx
mov dword [esp + 0x20c], ecx
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x210], ecx
mov dword [esp + 0x1d4], ecx
mov dword [esp + 0x214], ecx
mov dword [esp + 0x1d8], ecx
mov dword [esp + 0x218], ecx
mov dword [esp + 0x1dc], ecx
mov dword [esp + 0x21c], ecx
mov dword [esp + 0x1e0], ecx
mov dword [esp + 0x220], ecx
mov dword [esp + 0x1e4], ecx
mov dword [esp + 0x1e8], ecx
mov dword [esp + 0x1ec], ecx
mov dword [esp + 0x1f0], ecx
test ebp, 0x8010000
je 0x100594cb
test ebp, 0x10000
je 0x100594c4
lea eax, [esp + 0x29b]
and eax, 0xfffffffc
movsx eax, byte [eax]
jmp 0x100594d0
mov eax, 0x2c
jmp 0x100594d0
mov eax, 0x2e
test esi, esi
jle 0x1005b975
mov ecx, ebp
mov edx, ebp
and ecx, 0x80
and edx, 0x80000000
mov ebx, ecx
shl ecx, 0x18
mov edi, dword [esp + 0xc8]
and ecx, edx
shl ebx, 4
shr ecx, 0x13
or ebx, ecx
mov dword [esp + 0xc0], edx
movsx edx, byte [edi]
test ebp, 0x20
je 0x10059541
lea ecx, [edx - 9]
cmp ecx, 4
ja 0x1005b96e
mov ecx, edi
lea edx, [ecx + 1]
mov ecx, edx
dec esi
je 0x1005b942
movsx edx, byte [edx]
lea edi, [edx - 9]
cmp edi, 4
jbe 0x1005951e
cmp edx, 0x20
je 0x1005951e
mov dword [esp + 0xc8], ecx
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0xbc], ecx
cmp edx, 0x2d
jne 0x10059559
add ebx, 8
jmp 0x1005955e
cmp edx, 0x2b
jne 0x1005956f
inc dword [esp + 0xc8]
add ebx, 2
dec esi
je 0x1005b22a
xor edx, edx
fldz
mov dword [esp + 0x38], edx
mov dword [esp + 0x98], edx
mov dword [esp + 0xa4], edx
mov ecx, ebp
and ecx, 2
mov dword [esp + 0x20], ecx
mov ecx, ebp
and ecx, 0x40
mov dword [esp + 0x6c], ecx
mov ecx, ebp
and ecx, 1
mov dword [esp + 0x58], ecx
mov ecx, ebp
and ecx, 0x10
mov dword [esp + 0x54], ecx
mov ecx, ebp
and ecx, 0x100
mov dword [esp + 0xb8], ecx
mov ecx, ebp
and ecx, 0x1000
mov dword [esp + 0xb4], ecx
mov ecx, ebp
and ecx, 0x40000000
mov dword [esp + 0xa0], ecx
mov ecx, ebp
and ecx, 8
mov dword [esp + 0x40], ecx
mov ecx, ebp
and ecx, 4
mov dword [esp + 0x34], ecx
mov ecx, ebp
mov dword [esp + 0x1c], edx
and ecx, 0x800
mov dword [esp + 0x9c], edx
mov dword [esp + 0x3c], edx
mov dword [esp + 0xac], 9
mov dword [esp + 0xa8], 1
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0xe4], eax
mov dword [esp + 0x94], ebp
mov edx, dword [esp + 0xc8]
movsx ebp, byte [edx]
lea eax, [ebp - 0x2b]
cmp eax, 0x4d
ja 0x1005986a
movzx eax, word [eax*2 + 0x10215b60]
add eax, 0x10059654
notrack jmp eax
fstp st(0)
mov dword [esp + 0xbc], edx
test bl, 8
je 0x100597b8
fld qword [0x10216868]
jmp 0x100597be
fld qword [0x10216860]
and ebx, 0xfffffff7
mov eax, ebx
or eax, 0xc000000
cmp dword [esp + 0xa0], 0
je 0x100597d4
mov ebx, eax
cmp dword [esp + 0x20], 0
je 0x10059893
test esi, esi
je 0x10059893
cmp byte [edx], 0x20
jne 0x10059893
inc edx
dec esi
jne 0x100597e7
jmp 0x10059893
cmp byte [eax - 1], 0x66
je 0x100597a2
mov edx, ecx
neg ecx
lea esi, [eax + ecx]
jmp 0x10059893
cmp ebp, 9
jne 0x1005987c
cmp dword [esp + 0x58], 0
jne 0x1005996d
jmp 0x10059893
cmp ebp, 0x20
jne 0x10059893
cmp dword [esp + 0x20], 0
jne 0x1005996d
cmp dword [esp + 0x6c], 0
jne 0x100598b9
cmp ebp, dword [esp + 0xe4]
jne 0x1005b51d
test bl, 1
jne 0x1005b51d
mov dword [esp + 0x1c], 0
or ebx, 1
jmp 0x1005996d
mov ebp, 0x30
cmp dword [esp + 0x9c], 0
je 0x10059957
add ebp, 0xffffffd0
or ebx, 4
xor eax, eax
mov ecx, ebx
and ecx, 0x201
cmp ecx, 0x200
mov edi, dword [esp + 0x1c]
sete al
neg eax
mov ecx, dword [esp + 0x3c]
inc dword [esp + 0x9c]
lea eax, [edi + eax + 1]
mov dword [esp + 0x1c], eax
cmp ecx, dword [esp + 0xac]
je 0x10059925
mov edi, dword [esp + 0x70]
mov eax, edi
mov ecx, dword [esp + 0xa8]
shl eax, cl
inc dword [esp + 0x3c]
lea eax, [eax + edi*8]
add eax, ebp
mov dword [esp + 0x70], eax
jmp 0x1005996d
cmp dword [esp + 0x38], 2
jae 0x1005994e
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x70], ebp
mov dword [esp + ecx*4 + 0x1a8], eax
inc ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], 1
jmp 0x1005996d
or dword [esp + 0x98], ebp
jmp 0x1005996d
mov eax, ebx
or ebx, 4
and eax, 1
add dword [esp + 0x1c], eax
xor eax, 1
add dword [esp + 0xa4], eax
inc edx
dec esi
jne 0x10059635
mov dword [esp + 0xc8], edx
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x94]
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xa0], eax
test bl, 4
mov eax, dword [esp + 0xa0]
jne 0x100599af
mov eax, dword [esp + 0xbc]
test bl, 0x40
je 0x100599bb
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xa0], eax
test ebp, 0x8000
je 0x100599f5
cmp dword [esp + 0xc0], 0
je 0x100599e6
test esi, esi
je 0x100599f5
mov eax, dword [esp + 0xc8]
cmp byte [eax], 0
jne 0x100599ea
jmp 0x100599f5
test esi, esi
je 0x100599f5
or ebx, 0x3000000
jmp 0x1005b1bb
test edx, edx
jne 0x10059a26
mov eax, ebx
and eax, 0xc
cmp eax, 0xc
jne 0x10059a05
fchs
mov eax, ebp
mov edx, ebx
and eax, 0x28000
or edx, 0x3000000
cmp eax, 0x28000
jne 0x1005b1bb
mov ebx, edx
jmp 0x1005b1bb
fstp st(0)
test bl, 0x10
je 0x10059a65
cmp dword [esp + 0x14], 6
ja 0x1005adc3
mov eax, dword [esp]
mov ecx, eax
neg ecx
test ebx, 0x80
mov esi, dword [esp + 0xd0]
jne 0x10059a50
mov ecx, eax
test ebp, 0x400
jne 0x10059a5d
mov esi, 0
sub ecx, esi
mov dword [esp + 0x14], ecx
jmp 0x10059a72
mov eax, dword [esp + 0xd0]
neg eax
mov dword [esp + 0x14], eax
mov eax, ebx
and eax, 1
test ebx, 0x200
je 0x10059cab
mov esi, dword [esp + 0x1c]
neg esi
add esi, edx
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
shl ecx, 2
neg ecx
lea ebx, [ebx + esi*4]
mov esi, dword [esp + 0xcc]
shl esi, 2
neg esi
add esi, ebx
test eax, eax
je 0x10059ab3
mov esi, ebx
shl edi, cl
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0xcc], esi
cmp edx, 8
ja 0x10059af4
mov dword [esp + 0x14], 0
test edi, edi
jle 0x10059ae0
mov eax, dword [esp + 0x14]
add edi, edi
inc eax
test edi, edi
jg 0x10059ad5
mov dword [esp + 0x14], eax
mov dword [esp + 0x1e8], edi
mov dword [esp + 0x70], 1
jmp 0x10059c94
mov eax, dword [esp + 0x38]
lea esi, [eax + 1]
mov dword [esp + 0x70], esi
mov dword [esp + esi*4 + 0x1a4], edi
test edi, edi
jne 0x10059b1b
mov eax, esi
dec eax
cmp dword [esp + eax*4 + 0x1a4], 0
je 0x10059b0c
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x1a8]
mov dword [esp + 0x14], 0
test eax, eax
jle 0x10059c23
mov edx, dword [esp + 0x14]
add eax, eax
inc edx
test eax, eax
jg 0x10059b36
mov dword [esp + 0x14], edx
mov dword [esp + 0x1a8], eax
cmp dword [esp + 0x14], 0
je 0x10059c23
mov dword [esp + 0x1e8], eax
cmp dword [esp + 0x70], 1
jbe 0x10059c94
mov eax, dword [esp + 0x70]
lea eax, [eax - 1]
shr eax, 1
je 0x1005b53b
xor esi, esi
mov dword [esp + 0x6c], ebx
neg edx
mov dword [esp], eax
mov dword [esp + 0x94], ebp
lea esi, [esi]
lea edi, [edi]
mov eax, dword [esp + esi*8 + 0x1ac]
mov ecx, edx
mov ebx, eax
shr ebx, cl
mov edi, dword [esp + 0x14]
mov ecx, edi
or dword [esp + esi*8 + 0x1e8], ebx
mov ebx, dword [esp + esi*8 + 0x1b0]
mov ebp, ebx
shl eax, cl
mov ecx, edx
shr ebp, cl
mov ecx, edi
shl ebx, cl
or eax, ebp
mov dword [esp + esi*8 + 0x1ec], eax
mov dword [esp + esi*8 + 0x1f0], ebx
inc esi
cmp esi, dword [esp]
jb 0x10059b90
mov ebx, dword [esp + 0x6c]
lea eax, [esi + esi + 1]
mov ebp, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp]
mov edx, dword [esp + 0x70]
lea ecx, [eax - 1]
lea esi, [edx - 1]
cmp ecx, esi
jae 0x10059c94
mov esi, eax
mov eax, dword [esp + 0x14]
mov ecx, eax
neg ecx
mov edx, dword [esp + esi*4 + 0x1a8]
mov edi, edx
shr edi, cl
mov ecx, eax
shl edx, cl
or dword [esp + esi*4 + 0x1e4], edi
mov dword [esp + esi*4 + 0x1e8], edx
jmp 0x10059c94
cmp dword [esp + 0x70], 0
je 0x10059c94
cmp dword [esp + 0x70], 0x18
jle 0x1005b547
mov esi, dword [esp + 0x70]
lea edi, [esp + 0x1a4]
lea edx, [esp + 0x1e4]
sub edx, edi
lea ecx, [esi*4]
xor esi, esi
xor eax, eax
cmp edx, ecx
setg al
neg edx
cmp edx, ecx
mov dword [esp], eax
mov eax, esi
setg al
mov edx, dword [esp]
or edx, eax
je 0x1005b547
mov eax, dword [esp + 0x70]
lea esi, [esp + 0x1e8]
lea ecx, [esp + 0x1a8]
lea edx, [eax*4]
push edx
push ecx
push esi
call fcn.10061710
add esp, 0xc
mov eax, dword [esp + 0xcc]
sub eax, dword [esp + 0x14]
mov dword [esp + 0xcc], eax
jmp 0x1005aa0e
test eax, eax
je 0x10059cb9
mov eax, dword [esp + 0x1c]
sub dword [esp + 0x14], eax
jmp 0x10059cc8
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0xcc]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
add eax, edx
cmp eax, 0xfffffebd
jl 0x1005adc3
cmp eax, 0x135
jg 0x1005adc3
mov esi, dword [esp + 0x14]
lea eax, [edx - 0x1b]
test eax, eax
lea eax, [esi + edx - 0x1b]
jg 0x10059cf5
mov eax, esi
mov dword [esp + 0x40], eax
test eax, eax
jne 0x10059d06
cmp edx, 0x12
jbe 0x1005b060
mov ecx, ebx
or ecx, 0x100
lea esi, [eax + 0x16]
cmp esi, 0x2c
ja 0x10059d18
mov ebx, ecx
cmp edx, 0xf
jbe 0x10059d44
cmp edx, 0x10
jbe 0x10059d2f
mov eax, ebx
and eax, 0x100
mov dword [esp + 0x18], eax
jmp 0x10059d75
cmp dword [esp + 0x1a8], 0x35afe535
jb 0x10059d44
test edi, 1
jne 0x10059d22
mov eax, ebx
and eax, 0x100
mov dword [esp + 0x18], eax
je 0x10059d5e
mov dword [esp + 0x34], 0
jmp 0x1005b060
cmp dword [esp + 0x40], 0
jl 0x10059d75
mov eax, dword [esp + 0x40]
lea esi, [edx + eax]
cmp esi, 0x25
jle 0x1005b04d
cmp edx, 9
ja 0x1005aeee
mov dword [esp + 0xcc], 0
test edi, edi
jle 0x10059da2
mov eax, dword [esp + 0xcc]
add edi, edi
inc eax
test edi, edi
jg 0x10059d94
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xcc]
neg eax
add eax, 0x20
mov dword [esp + 0x1e8], edi
mov dword [esp + 0xcc], eax
mov dword [esp + 0x70], 1
cmp dword [esp + 0x18], 0
je 0x10059e9d
mov eax, dword [esp + 0x70]
shl eax, 5
cmp eax, 0x40
ja 0x10059e9d
mov edx, dword [esp + 0x1ec]
test edx, 0x7ff
jne 0x10059e9d
cmp dword [esp + 0x70], 2
mov eax, dword [esp + 0x1e8]
jae 0x10059e05
mov edx, 0
mov dword [esp], eax
cmp dword [esp + 0xcc], 0xfffffc02
jle 0x10059e41
mov ecx, dword [esp + 0xcc]
mov esi, eax
mov eax, esi
shl ecx, 0x14
shr esi, 0xb
add ecx, 0x3fe00000
and esi, 0xffefffff
shr edx, 0xb
or esi, ecx
shl eax, 0x15
mov dword [esp], esi
or edx, eax
jmp 0x10059e81
mov eax, dword [esp + 0xcc]
neg eax
add eax, 0xfffffc0e
mov dword [esp + 0xcc], eax
cmp eax, 0x20
jl 0x10059e6b
mov ecx, eax
mov edx, dword [esp]
shr edx, cl
mov dword [esp], 0
jmp 0x10059e81
mov ecx, eax
mov edi, dword [esp]
mov esi, edi
shr edx, cl
neg ecx
shl esi, cl
mov ecx, eax
shr edi, cl
or edx, esi
mov dword [esp], edi
mov eax, dword [esp]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
fld qword [esp + 0x14]
mov dword [esp + 0x34], 0
jmp 0x1005b18a
cmp dword [esp + 0x40], 0
je 0x1005aa0e
xor eax, eax
mov dword [esp + 0x224], eax
mov dword [esp + 0x230], eax
mov dword [esp + 0x234], eax
mov dword [esp + 0x238], eax
mov dword [esp + 0x23c], eax
mov dword [esp + 0x240], eax
mov dword [esp + 0x244], eax
mov dword [esp + 0x248], eax
mov dword [esp + 0x24c], eax
mov dword [esp + 0x250], eax
mov dword [esp + 0x254], eax
mov dword [esp + 0x258], eax
mov dword [esp + 0x25c], eax
mov dword [esp + 0x260], eax
cmp dword [esp + 0x70], 2
jb 0x10059fd5
mov eax, dword [esp + 0x1f0]
shr eax, 0x1f
mov edx, dword [esp + 0x1ec]
add edx, eax
mov dword [esp + 0x1ec], edx
cmp edx, eax
jae 0x10059fad
mov eax, 1
mov dword [esp + 0x1e4], 0
mov dword [esp + 0x70], eax
cmp dword [esp + 0x1e8], 0xffffffff
je 0x10059f62
lea eax, [esp + 0x1e8]
mov dword [esp + 0x38], eax
mov eax, dword [eax]
jmp 0x10059f82
mov edx, eax
dec edx
lea ecx, [esp + edx*4 + 0x1e4]
mov eax, dword [ecx]
cmp eax, 0xffffffff
je 0x10059f64
mov dword [esp + 0x70], edx
mov dword [esp + 0x38], ecx
cmp dword [esp + 0x70], 0
je 0x10059f8b
mov edx, dword [esp + 0x38]
inc eax
mov dword [edx], eax
jmp 0x10059fe4
inc dword [esp + 0xcc]
lea eax, [esp + 0x1e8]
mov dword [eax], SysReAllocStringLen
mov dword [esp + 0x70], 1
mov dword [esp + 0x38], eax
jmp 0x10059fe4
mov eax, 2
mov dword [esp + 0x70], eax
test edx, edx
jne 0x1005b5c5
dec eax
lea edx, [esp + eax*4 + 0x1e4]
cmp dword [edx], 0
je 0x10059fbe
mov dword [esp + 0x70], eax
mov dword [esp + 0x38], edx
jmp 0x10059fe4
mov eax, dword [esp + 0x70]
lea edx, [esp + eax*4 + 0x1e4]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x40]
xor eax, eax
mov dword [esp + 0x164], eax
mov dword [esp + 0x170], eax
mov dword [esp + 0x174], eax
lea ecx, [edx + 0x2f]
mov dword [esp + 0x178], eax
mov dword [esp + 0x17c], eax
mov dword [esp + 0x180], eax
mov dword [esp + 0x184], eax
mov dword [esp + 0x188], eax
mov dword [esp + 0x18c], eax
mov dword [esp + 0x190], eax
mov dword [esp + 0x194], eax
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], eax
mov dword [esp + 0x1a0], eax
cmp ecx, 0x5e
ja 0x1005a0b6
mov esi, edx
mov dword [esp + 0x16c], eax
mov dword [esp + 0x168], eax
movsx edx, word [esi*2 + 0x102165be]
mov ecx, dword [esi*8 + 0x102163dc]
mov edi, dword [esi*8 + 0x102163d8]
mov dword [esp + 0x58], 2
mov dword [esp + 0x34], edx
mov dword [esp + 0x228], ecx
mov dword [esp + 0x22c], edi
test edi, edi
jne 0x1005b5d5
mov edx, dword [esp + 0x58]
dec edx
lea eax, [esp + edx*4 + 0x224]
cmp dword [eax], 0
je 0x1005a0a0
mov dword [esp + 0x58], edx
jmp 0x1005a613
cmp dword [esp + 0x40], 0
jl 0x1005b659
mov eax, edx
mov edx, eax
sar edx, 3
lea esi, [edx + edx]
movzx ecx, word [esi + 0x102167a2]
lea edi, [edx + edx + 2]
shr ecx, 5
cmp ecx, eax
jle 0x1005a0df
mov edi, esi
movzx edx, word [edi + 0x102167a0]
mov esi, edx
and esi, 0x1f
shr edx, 5
sub eax, edx
mov dword [esp + 0x40], eax
movsx eax, word [esi*2 + 0x10216818]
mov dword [esp + 0x14], eax
mov ecx, dword [esi*8 + 0x10216724]
mov eax, dword [esi*8 + 0x10216720]
mov dword [esp + 0x168], ecx
mov dword [esp + 0x16c], eax
mov esi, dword [esp + 0x40]
mov dword [esp + 0x54], 2
movsx edx, word [esi*2 + 0x102165be]
mov ecx, dword [esi*8 + 0x102163dc]
mov edi, dword [esi*8 + 0x102163d8]
mov dword [esp + 0x18], edx
mov dword [esp + 0x228], ecx
mov dword [esp + 0x22c], edi
test edi, edi
jne 0x1005b645
mov esi, dword [esp + 0x54]
dec esi
lea ecx, [esp + esi*4 + 0x224]
cmp dword [ecx], 0
lea edx, [esi*4]
je 0x1005a15c
mov dword [esp + 0x20], edx
mov dword [esp + 0x54], esi
mov dword [esp + 8], eax
mov eax, dword [ecx]
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
mul dword [esp + 8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 0x168]
mov ecx, dword [ecx]
mov dword [esp + esi*4 + 0x128], 0
mov dword [esp + 0x44], ecx
mov dword [esp + esi*4 + 0xe8], eax
mov dword [esp + esi*4 + 0xec], edx
mov dword [esp + 0x48], edi
mov eax, dword [esp + 0x44]
mul dword [esp + 0x48]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], edx
mov ecx, dword [esp + 0x54]
xor eax, eax
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + ecx*4 + 0xe8]
add edi, esi
cmp edi, esi
mov dword [esp + ecx*4 + 0x124], eax
setb al
add eax, dword [esp + 0x50]
mov dword [esp + ecx*4 + 0xe8], edi
mov dword [esp + ecx*4 + 0xe4], eax
dec ecx
js 0x1005a2a2
mov edx, dword [esp + 0x54]
shr edx, 1
je 0x1005b63b
mov edi, dword [esp + 0x20]
xor eax, eax
mov dword [esp + 0x94], ebp
mov dword [esp + 0x1c], ecx
lea esi, [esp + edi + 0x124]
mov dword [esp], esi
lea esi, [esp + edi + 0xe4]
xor edi, edi
mov ebp, esi
mov esi, dword [esp]
lea ecx, [eax*8]
inc eax
neg ecx
mov dword [esi + ecx - 4], edi
mov dword [ebp + ecx - 4], edi
mov dword [esi + ecx - 8], edi
mov dword [ebp + ecx - 8], edi
cmp eax, edx
jb 0x1005a245
mov ecx, dword [esp + 0x1c]
lea eax, [eax + eax + 1]
mov ebp, dword [esp + 0x94]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x54]
jae 0x1005a2a2
shl eax, 2
xor esi, esi
mov dword [esp + 0x6c], ebx
neg eax
mov ebx, dword [esp + 0x20]
lea edx, [esp + ebx + 0x124]
mov dword [eax + edx], esi
lea edi, [esp + ebx + 0xe4]
mov dword [eax + edi], esi
mov ebx, dword [esp + 0x6c]
test ecx, ecx
je 0x1005a34c
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x94], ebp
mov ebp, 2
lea esi, [esp + ecx*4 + 0x124]
lea ebx, [esp + ecx*4 + 0xe4]
mov eax, dword [esp + ecx*4 + 0x224]
mov edx, dword [esp + ebp*4 + 0x164]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edx
mov eax, dword [esp + 0x84]
mul dword [esp + 0x88]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], edx
mov edx, dword [esp + 0x8c]
mov edi, dword [ebx + ebp*4]
add edi, edx
mov dword [ebx + ebp*4], edi
xor eax, eax
cmp edi, edx
mov edi, 0
setb al
add eax, dword [esp + 0x90]
mov edx, dword [ebx + ebp*4 - 4]
add edx, eax
cmp edx, eax
mov eax, edi
mov dword [ebx + ebp*4 - 4], edx
setb al
add dword [esi + ebp*4 - 8], eax
dec ebp
jne 0x1005a2c8
dec ecx
jne 0x1005a2b5
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x94]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
lea eax, [edx + 2]
mov dword [esp + 0x58], eax
lea edi, [ecx + esi]
mov esi, dword [esp + edx*4 + 0xec]
mov dword [esp + 0x34], edi
lea ecx, [esp + edx*4 + 0x22c]
mov dword [esp + 0x1c], ecx
lea edx, [edx + 1]
mov dword [ecx], esi
mov dword [esp], edx
cmp eax, 1
je 0x1005a468
mov ecx, edx
mov dword [esp + 0x20], 0
shr ecx, 1
je 0x1005b631
mov edi, dword [esp + 0x54]
xor edx, edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x94], ebp
lea esi, [esp + edi*4 + 0xe8]
mov dword [esp + 0x3c], esi
lea esi, [esp + edi*4 + 0x228]
lea eax, [esp + edi*4 + 0x128]
mov dword [esp + 0x6c], ebx
mov edi, edx
mov ebp, esi
mov ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x3c]
inc edx
add ecx, dword [edi + eax]
mov ebx, dword [edi + esi]
add ebx, ecx
cmp ebx, ecx
mov ecx, 0
mov dword [edi + ebp], ebx
mov ebx, ecx
setb bl
add ebx, dword [edi + eax - 4]
mov esi, dword [edi + esi - 4]
add esi, ebx
cmp esi, ebx
mov dword [edi + ebp - 4], esi
setb cl
add edi, 0xfffffff8
cmp edx, dword [esp + 0x40]
jb 0x1005a3d1
mov dword [esp + 0x20], ecx
lea eax, [edx + edx + 1]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x94]
lea edx, [eax - 1]
cmp edx, dword [esp]
jae 0x1005a462
shl eax, 2
mov esi, dword [esp + 0x54]
neg eax
mov edx, dword [esp + 0x20]
mov dword [esp + 0x6c], ebx
lea ecx, [esp + esi*4 + 0x128]
add edx, dword [eax + ecx + 4]
lea ebx, [esp + esi*4 + 0xe8]
add edx, dword [eax + ebx + 4]
lea edi, [esp + esi*4 + 0x228]
mov dword [eax + edi + 4], edx
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x6c]
mov esi, dword [eax]
jmp 0x1005a468
mov eax, dword [esp + 0x1c]
mov esi, dword [eax]
test esi, esi
jne 0x1005a485
mov edx, dword [esp + 0x58]
dec edx
lea eax, [esp + edx*4 + 0x224]
cmp dword [eax], 0
je 0x1005a470
mov dword [esp + 0x1c], eax
mov dword [esp + 0x58], edx
mov esi, dword [esp + 0x228]
test esi, esi
jle 0x1005b61f
mov eax, dword [esp + 0x14]
add esi, esi
mov edx, dword [esp + 0x18]
mov dword [esp + 0x228], esi
cmp dword [esp + 0x58], 2
lea ecx, [eax + edx - 1]
mov dword [esp + 0x34], ecx
jb 0x1005a542
mov eax, dword [esp + 0x58]
lea ecx, [eax - 1]
shr ecx, 1
je 0x1005b5e1
xor eax, eax
mov edx, dword [esp + eax*8 + 0x22c]
mov esi, edx
shr esi, 0x1f
add edx, edx
or dword [esp + eax*8 + 0x228], esi
mov esi, dword [esp + eax*8 + 0x230]
mov edi, esi
shr edi, 0x1f
add esi, esi
or edx, edi
mov dword [esp + eax*8 + 0x22c], edx
mov dword [esp + eax*8 + 0x230], esi
inc eax
cmp eax, ecx
jb 0x1005a4c9
lea eax, [eax + eax + 1]
mov dword [esp], eax
mov eax, dword [esp]
mov edx, dword [esp + 0x58]
lea ecx, [eax - 1]
lea esi, [edx - 1]
cmp ecx, esi
jae 0x1005a537
mov ecx, eax
mov edx, dword [esp + ecx*4 + 0x228]
mov eax, edx
shr eax, 0x1f
add edx, edx
or dword [esp + ecx*4 + 0x224], eax
mov dword [esp + ecx*4 + 0x228], edx
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
je 0x1005a54f
jmp 0x1005a55e
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
jne 0x1005a608
dec dword [esp + 0x58]
cmp dword [esp + 0x58], 2
jb 0x1005a608
mov eax, dword [esp + 0x230]
shr eax, 0x1f
mov edx, dword [esp + 0x22c]
add edx, eax
mov dword [esp + 0x22c], edx
cmp edx, eax
jae 0x1005a5e1
mov eax, 1
mov dword [esp + 0x224], 0
mov dword [esp + 0x58], eax
cmp dword [esp + 0x228], 0xffffffff
je 0x1005a5a5
lea eax, [esp + 0x228]
mov edx, dword [eax]
jmp 0x1005a5c1
mov ecx, eax
dec ecx
lea eax, [esp + ecx*4 + 0x224]
mov edx, dword [eax]
cmp edx, 0xffffffff
je 0x1005a5a7
mov dword [esp + 0x58], ecx
cmp dword [esp + 0x58], 0
je 0x1005a5c6
inc edx
mov dword [eax], edx
jmp 0x1005a613
inc dword [esp + 0x34]
lea eax, [esp + 0x228]
mov dword [eax], SysReAllocStringLen
mov dword [esp + 0x58], 1
jmp 0x1005a613
mov dword [esp + 0x58], 2
test edx, edx
jne 0x1005b5d5
mov edx, dword [esp + 0x58]
dec edx
lea eax, [esp + edx*4 + 0x224]
cmp dword [eax], 0
je 0x1005a5f5
mov dword [esp + 0x58], edx
jmp 0x1005a613
mov eax, dword [esp + 0x58]
lea eax, [esp + eax*4 + 0x224]
mov eax, dword [eax]
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x38]
lea edx, [ecx + esi]
mov dword [esp + 0x18], edx
lea edi, [ecx + esi - 1]
mov dword [esp], edi
mov dword [esp + 0x1c], edi
mov edx, dword [eax]
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x24]
mul dword [esp + 0x28]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
mov eax, dword [esp]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
lea esi, [esp + eax*4 + 0xe4]
mov dword [esp + 0x14], esi
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [esi], edx
dec ecx
je 0x1005a6ea
mov dword [esp + 0x6c], ebx
xor esi, esi
mov dword [esp + 0x94], ebp
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x38]
mov eax, dword [ebp]
mov edx, dword [esp + ecx*4 + 0x224]
mov dword [esp + ebx*4 + 0x124], 0
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edx
mov eax, dword [esp + 0x5c]
mul dword [esp + 0x60]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x64]
mov eax, esi
mov edi, dword [esp + ebx*4 + 0xe4]
add edi, edx
cmp edi, edx
mov dword [esp + ebx*4 + 0xe4], edi
setb al
dec ebx
add eax, dword [esp + 0x68]
mov dword [esp + ebx*4 + 0xe4], eax
dec ecx
jne 0x1005a684
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x94]
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x124], 0
dec eax
js 0x1005a774
mov esi, dword [esp + 0x1c]
shr esi, 1
je 0x1005b615
mov eax, dword [esp + 0x1c]
xor edx, edx
xor edi, edi
mov dword [esp + 0x94], ebp
mov ebp, edx
lea ecx, [esp + eax*4 + 0xe0]
lea eax, [esp + eax*4 + 0x120]
inc edx
mov dword [ebp + eax], edi
mov dword [ebp + ecx], edi
mov dword [ebp + eax - 4], edi
mov dword [ebp + ecx - 4], edi
add ebp, 0xfffffff8
cmp edx, esi
jb 0x1005a727
mov ebp, dword [esp + 0x94]
lea eax, [edx + edx + 1]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x1c]
jae 0x1005a774
shl eax, 2
xor esi, esi
mov ecx, dword [esp + 0x1c]
neg eax
lea edx, [esp + ecx*4 + 0x120]
mov dword [eax + edx + 4], esi
lea edi, [esp + ecx*4 + 0xe0]
mov dword [eax + edi + 4], esi
dec dword [esp + 0x70]
je 0x1005a831
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x94], ebp
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x58]
mov ebp, eax
test eax, eax
je 0x1005a81f
lea ebx, [esp + esi*4 + 0x124]
lea ecx, [esp + esi*4 + 0xe4]
mov eax, dword [esp + esi*4 + 0x1e4]
mov edx, dword [esp + ebp*4 + 0x224]
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], edx
mov eax, dword [esp + 0xd4]
mul dword [esp + 0xd8]
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], edx
mov edx, dword [esp + 0xdc]
mov edi, dword [ecx + ebp*4]
add edi, edx
mov dword [ecx + ebp*4], edi
xor eax, eax
cmp edi, edx
mov edi, 0
setb al
add eax, dword [esp + 0xe0]
mov edx, dword [ecx + ebp*4 - 4]
add edx, eax
cmp edx, eax
mov eax, edi
mov dword [ecx + ebp*4 - 4], edx
setb al
add dword [ebx + ebp*4 - 8], eax
dec ebp
jne 0x1005a7a9
mov eax, dword [esp + 0x58]
dec esi
jne 0x1005a791
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x94]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0xcc]
add eax, dword [esp + 0x34]
mov dword [esp + 0xcc], eax
lea ecx, [esp + edx*4 + 0x1e4]
mov eax, dword [ecx - 0x100]
mov dword [esp + 0x70], edx
mov dword [esp + 0x1c], ecx
mov dword [ecx], eax
cmp edx, 1
je 0x1005a93e
mov ecx, dword [esp]
mov dword [esp + 0x18], 0
shr ecx, 1
je 0x1005b60b
mov esi, dword [esp]
xor edx, edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x94], ebp
lea eax, [esp + esi*4 + 0x1e4]
mov dword [esp + 0x6c], ebx
lea esi, [esp + esi*4 + 0x124]
mov dword [esp + 0x34], esi
mov edi, edx
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x34]
inc edx
mov ebx, dword [edi + ebp]
add ecx, dword [edi + esi]
add ebx, ecx
cmp ebx, ecx
mov ecx, 0
mov dword [edi + eax], ebx
mov ebx, ecx
setb bl
add ebx, dword [edi + esi - 4]
mov esi, dword [edi + ebp - 4]
add esi, ebx
cmp esi, ebx
mov dword [edi + eax - 4], esi
setb cl
add edi, 0xfffffff8
cmp edx, dword [esp + 0x20]
jb 0x1005a8aa
mov dword [esp + 0x18], ecx
lea eax, [edx + edx + 1]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x94]
lea edx, [eax - 1]
cmp edx, dword [esp]
jae 0x1005a938
shl eax, 2
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0x14]
mov esi, dword [esp]
sub ebx, eax
neg eax
mov edx, dword [esp + 0x18]
lea ecx, [esp + esi*4 + 0x124]
lea edi, [esp + esi*4 + 0x1e4]
add edx, dword [eax + ecx + 4]
add edx, dword [ebx + 4]
mov dword [eax + edi + 4], edx
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x6c]
mov eax, dword [eax]
jmp 0x1005a93e
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
test eax, eax
jne 0x1005a95b
mov edx, dword [esp + 0x70]
dec edx
lea eax, [esp + edx*4 + 0x1e4]
cmp dword [eax], 0
je 0x1005a946
mov dword [esp + 0x1c], eax
mov dword [esp + 0x70], edx
mov eax, dword [esp + 0x1e8]
test eax, eax
jle 0x1005aa0e
dec dword [esp + 0xcc]
add eax, eax
mov dword [esp + 0x1e8], eax
cmp dword [esp + 0x70], 2
jb 0x1005aa00
mov eax, dword [esp + 0x70]
lea ecx, [eax - 1]
shr ecx, 1
je 0x1005b5ed
xor eax, eax
mov edx, dword [esp + eax*8 + 0x1ec]
mov esi, edx
shr esi, 0x1f
add edx, edx
or dword [esp + eax*8 + 0x1e8], esi
mov esi, dword [esp + eax*8 + 0x1f0]
mov edi, esi
shr edi, 0x1f
add esi, esi
or edx, edi
mov dword [esp + eax*8 + 0x1ec], edx
mov dword [esp + eax*8 + 0x1f0], esi
inc eax
cmp eax, ecx
jb 0x1005a992
lea eax, [eax + eax + 1]
mov edx, dword [esp + 0x70]
lea ecx, [eax - 1]
lea esi, [edx - 1]
cmp ecx, esi
jae 0x1005aa00
mov ecx, dword [esp + eax*4 + 0x1e8]
mov edx, ecx
shr edx, 0x1f
add ecx, ecx
or dword [esp + eax*4 + 0x1e4], edx
mov dword [esp + eax*4 + 0x1e8], ecx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
jmp 0x1005aa06
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
cmp eax, 1
sbb dword [esp + 0x70], 0
mov edx, ebp
shr edx, 0x16
and edx, 7
mov eax, dword [esp + 0xc0]
or eax, edx
jne 0x1005aa26
mov edx, 6
mov eax, edx
and eax, 2
test dl, 4
je 0x1005aa44
test eax, eax
mov eax, 0xaaaa
jne 0x1005aa3e
mov eax, 0xfa
mov dword [esp + 0x34], eax
jmp 0x1005aa65
test eax, eax
je 0x1005aa52
mov dword [esp + 0x34], 0xfa00
jmp 0x1005aa65
mov eax, 0xa8a8
test dl, 1
je 0x1005aa61
mov eax, 0
mov dword [esp + 0x34], eax
cmp edx, 2
je 0x1005aa6f
cmp edx, 4
jne 0x1005aa76
mov ecx, 1
jmp 0x1005aa78
xor ecx, ecx
mov eax, dword [esp + 0xcc]
lea edx, [eax + 0x432]
cmp edx, 0x35
jle 0x1005aa91
mov edx, 0x35
jmp 0x1005aa99
test edx, edx
js 0x1005adc3
mov esi, edx
xor eax, eax
and edx, 0x1f
setne al
sar esi, 5
mov dword [esp + 0x54], esi
mov dword [esp + 0x3c], eax
lea edi, [esi + eax]
mov dword [esp + 0x40], edi
cmp edi, dword [esp + 0x70]
jbe 0x1005aac3
test ecx, ecx
je 0x1005ad90
mov eax, dword [esp + 0x70]
mov ecx, edi
mov dword [esp + 0x38], eax
mov dword [esp + 0x70], ecx
test ecx, ecx
je 0x1005ad2c
mov eax, edi
mov ecx, dword [esp + eax*4 + 0x1e4]
mov dword [esp + 0x14], ecx
test edx, edx
je 0x1005abd3
mov dword [esp + 0x6c], ebx
mov ebx, edx
neg ebx
mov edi, 1
mov eax, ecx
mov esi, eax
lea ecx, [ebx + 0x1f]
add ebx, 0x20
shr esi, cl
and esi, 1
mov dword [esp], ecx
mov ecx, ebx
mov dword [esp + 0x20], esi
mov esi, eax
mov ebx, 1
shl edi, cl
shr esi, cl
mov ecx, dword [esp]
and esi, 1
shl ebx, cl
dec ebx
and ebx, eax
mov eax, dword [esp + 0x38]
or dword [esp + 0x98], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], esi
cmp eax, dword [esp + 0x40]
jbe 0x1005ac96
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x54]
lea ecx, [ecx + eax + 1]
cmp ecx, dword [esp + 0x38]
ja 0x1005ac96
mov eax, dword [esp + 0x38]
sub eax, ecx
inc eax
mov dword [esp + 0x38], eax
shr eax, 1
je 0x1005b5f7
mov edi, eax
mov dword [esp + 0x94], ebp
lea esi, [esp + ecx*4 + 0x1e4]
xor eax, eax
mov ebp, dword [esp + 0x98]
or ebp, dword [esi + eax*8]
or ebp, dword [esi + eax*8 + 4]
inc eax
cmp eax, edi
jb 0x1005ab8c
mov dword [esp + 0x98], ebp
lea esi, [eax + eax + 1]
mov ebp, dword [esp + 0x94]
lea eax, [esi - 1]
cmp eax, dword [esp + 0x38]
jae 0x1005ac96
add ecx, esi
mov eax, dword [esp + 0x98]
or eax, dword [esp + ecx*4 + 0x1e0]
mov dword [esp + 0x98], eax
jmp 0x1005ac96
mov esi, eax
and ecx, 1
mov eax, dword [esp + esi*4 + 0x1e8]
mov edi, eax
add eax, eax
mov dword [esp + 0x1c], ecx
or dword [esp + 0x98], eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x54]
shr edi, 0x1f
mov dword [esp + 0x20], edi
lea esi, [ecx + eax + 1]
cmp esi, dword [esp + 0x38]
jae 0x1005ac8e
mov esi, ecx
lea edi, [esi + 2]
lea ecx, [esi + eax + 2]
cmp edi, dword [esp + 0x38]
ja 0x1005ac8e
mov eax, dword [esp + 0x38]
sub eax, ecx
inc eax
mov dword [esp + 0x38], eax
shr eax, 1
je 0x1005b601
mov edi, eax
mov dword [esp + 0x94], ebp
lea esi, [esp + ecx*4 + 0x1e4]
xor eax, eax
mov ebp, dword [esp + 0x98]
or ebp, dword [esi + eax*8]
or ebp, dword [esi + eax*8 + 4]
inc eax
cmp eax, edi
jb 0x1005ac46
mov dword [esp + 0x98], ebp
lea esi, [eax + eax + 1]
mov ebp, dword [esp + 0x94]
mov dword [esp + 0x18], 1
lea eax, [esi - 1]
cmp eax, dword [esp + 0x38]
jae 0x1005ac96
add ecx, esi
mov eax, dword [esp + 0x98]
or eax, dword [esp + ecx*4 + 0x1e0]
mov dword [esp + 0x98], eax
jmp 0x1005ac96
mov dword [esp + 0x18], 1
mov edi, dword [esp + 0x20]
xor eax, eax
mov ecx, dword [esp + 0x1c]
cmp dword [esp + 0x98], 0
setne al
lea esi, [edi + ecx*2]
mov edi, ebx
and edi, 8
lea ecx, [edi + eax*4]
add ecx, esi
mov esi, dword [esp + 0x34]
shr esi, cl
test esi, 1
je 0x1005ad90
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
add eax, ecx
mov dword [esp + 0x14], eax
cmp eax, ecx
jae 0x1005ad4d
mov esi, eax
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x40]
lea ecx, [eax + edx - 1]
mov dword [esp + 0x70], ecx
mov dword [esp + edi*4 + 0x1e4], esi
lea edx, [esp + ecx*4 + 0x1e4]
mov dword [esp + 0x1e4], 0
mov eax, dword [edx]
cmp eax, 0xffffffff
jne 0x1005ad25
dec ecx
lea edx, [esp + ecx*4 + 0x1e4]
mov eax, dword [edx]
cmp eax, 0xffffffff
je 0x1005ad12
mov dword [esp + 0x70], ecx
cmp dword [esp + 0x70], 0
jne 0x1005ad48
inc dword [esp + 0xcc]
mov dword [esp + 0x1e8], VariantInit
mov dword [esp + 0x70], 1
jmp 0x1005ad90
inc eax
mov dword [edx], eax
jmp 0x1005ad90
test edx, edx
je 0x1005ad6b
mov edx, eax
mov eax, ecx
mov ecx, dword [esp + 0x40]
dec eax
not eax
and edx, eax
mov dword [esp + 0x14], edx
mov dword [esp + ecx*4 + 0x1e4], edx
jmp 0x1005ad76
mov edx, dword [esp + 0x40]
mov dword [esp + edx*4 + 0x1e4], eax
cmp dword [esp + 0x14], 0
jne 0x1005ad90
mov eax, dword [esp + 0x70]
dec eax
cmp dword [esp + eax*4 + 0x1e4], 0
je 0x1005ad81
mov dword [esp + 0x70], eax
cmp dword [esp + 0xcc], 0x400
jg 0x1005adc3
cmp dword [esp + 0xcc], 0xfffffc02
jg 0x1005ae36
cmp dword [esp + 0xcc], 0xfffffbcf
jl 0x1005adc3
test ebp, 0x10000000
je 0x1005ae25
test ebx, 0x80
je 0x1005adf8
test bl, 8
je 0x1005add8
fld qword [0x10216848]
jmp 0x1005adde
fld qword [0x10216840]
mov eax, ebx
or eax, 0x9000000
test ebp, 0x4000
je 0x1005b1bb
mov ebx, eax
jmp 0x1005b1bb
test bl, 8
je 0x1005ae05
fld qword [0x10216868]
jmp 0x1005ae0b
fld qword [0x10216860]
mov eax, ebx
or eax, 0x8000000
test ebp, 0x2000
je 0x1005b1bb
mov ebx, eax
jmp 0x1005b1bb
mov eax, ebx
or eax, 0x9000000
test ebp, 0x4000
je 0x1005ae36
mov ebx, eax
mov eax, dword [esp + 0x1e8]
mov dword [esp], eax
cmp dword [esp + 0x70], 2
jae 0x1005ae4b
xor edx, edx
jmp 0x1005ae52
mov edx, dword [esp + 0x1ec]
cmp dword [esp + 0xcc], 0xfffffc02
jle 0x1005ae8b
mov ecx, dword [esp + 0xcc]
mov esi, eax
mov eax, esi
shl ecx, 0x14
shr esi, 0xb
add ecx, 0x3fe00000
and esi, 0xffefffff
shr edx, 0xb
or esi, ecx
shl eax, 0x15
mov dword [esp], esi
or edx, eax
jmp 0x1005aecb
mov eax, dword [esp + 0xcc]
neg eax
add eax, 0xfffffc0e
mov dword [esp + 0xcc], eax
cmp eax, 0x20
jl 0x1005aeb5
mov ecx, eax
mov edx, dword [esp]
shr edx, cl
mov dword [esp], 0
jmp 0x1005aecb
mov ecx, eax
mov edi, dword [esp]
mov esi, edi
shr edx, cl
neg ecx
shl esi, cl
mov ecx, eax
shr edi, cl
or edx, esi
mov dword [esp], edi
mov eax, dword [esp]
mov dword [esp + 0x14], edx
mov edx, eax
or edx, 0x80000000
test bl, 8
jne 0x1005aee1
mov edx, eax
mov dword [esp + 0x18], edx
fld qword [esp + 0x14]
jmp 0x1005b1bb
mov eax, dword [esp + 0x38]
mov esi, dword [0x10216924]
mov dword [esp + eax*4 + 0x1a8], edi
lea edx, [eax + 1]
mov ecx, dword [esp + 0x1a8]
mov dword [esp + 0x70], edx
mov dword [esp + 0xe8], ecx
cmp edx, 2
jb 0x1005b6c1
mov ecx, 2
je 0x1005af39
mov dword [esp + 0x6c], ebx
xor ebx, ebx
mov dword [esp + 0x94], ebp
mov eax, edx
mov edx, dword [esp + 0x3c]
jmp 0x1005af53
mov dword [esp + 0x6c], ebx
xor ebx, ebx
mov dword [esp + 0x94], ebp
mov eax, edx
mov edx, dword [esp + 0x3c]
mov esi, dword [edx*4 + 0x10216900]
mov edx, dword [esp + 0xe8]
cmp ecx, 1
jle 0x1005b91d
mov dword [esp + 0xe8], 0
mov ebp, 1
mov dword [esp + 0x70], eax
mov dword [esp + 0x78], edx
mov dword [esp + 0x74], esi
mov eax, dword [esp + 0x74]
mul dword [esp + 0x78]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], edx
mov edi, dword [esp + 0x7c]
mov eax, dword [esp + ebp*4 + 0xe4]
add eax, edi
cmp eax, edi
mov dword [esp + ebp*4 + 0xe4], eax
mov eax, ebx
setb al
add eax, dword [esp + 0x80]
mov edx, dword [esp + ebp*4 + 0xe8]
mov dword [esp + ebp*4 + 0xe8], eax
inc ebp
cmp ebp, ecx
jl 0x1005af77
mov eax, dword [esp + 0x70]
mov ebp, dword [esp + 0xe8]
mov edx, dword [esp + ecx*4 + 0x1a4]
add ebp, edx
mov dword [esp + 0xe8], ebp
cmp ebp, edx
jae 0x1005b02b
mov dword [esp + ecx*4 + 0xe8], 0
mov edi, 2
cmp dword [esp + 0xec], 0xffffffff
je 0x1005b00c
lea ebp, [esp + 0xec]
mov edx, dword [ebp]
jmp 0x1005b027
mov dword [esp + edi*4 + 0xe4], 0
inc edi
lea ebp, [esp + edi*4 + 0xe4]
mov edx, dword [ebp]
cmp edx, 0xffffffff
je 0x1005b00c
inc edx
mov dword [ebp], edx
inc ecx
cmp ecx, eax
ja 0x1005b6b2
jne 0x1005af53
lea esi, [esi]
lea edi, [edi]
mov edx, dword [esp + 0x3c]
jmp 0x1005af4c
mov esi, eax
mov eax, edx
neg eax
add eax, 0xf
sub esi, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x34], esi
cmp edx, 9
ja 0x1005b084
mov dword [esp + 0x14], edi
fild dword [esp + 0x14]
shr edi, 0x1f
fadd qword [edi*8 + 0x10215b50]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
jmp 0x1005b18a
fild dword [esp + 0x1a8]
mov eax, dword [esp + 0x1a8]
shr eax, 0x1f
cmp dword [esp + 0x38], 2
fadd qword [eax*8 + 0x10215b50]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
jb 0x1005b15f
fld qword [0x10216b00]
mov eax, dword [esp + 0x38]
lea eax, [eax - 1]
shr eax, 1
je 0x1005b938
xor ecx, ecx
lea esi, [esi]
lea edi, [edi]
jmp 0x1005b0d4
faddp st(2)
fild dword [esp + ecx*8 + 0x1ac]
fxch st(1)
fmul st(2), st(0)
fild dword [esp + ecx*8 + 0x1b0]
mov esi, dword [esp + ecx*8 + 0x1ac]
shr esi, 0x1f
fxch st(2)
fadd qword [esi*8 + 0x10215b50]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
mov esi, dword [esp + ecx*8 + 0x1b0]
inc ecx
shr esi, 0x1f
faddp st(3)
fmul st(2), st(0)
fxch st(1)
fadd qword [esi*8 + 0x10215b50]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
cmp ecx, eax
jb 0x1005b0d2
faddp st(2)
lea edx, [ecx + ecx + 1]
mov esi, dword [esp + 0x38]
lea eax, [edx - 1]
dec esi
cmp eax, esi
jae 0x1005b981
mov eax, dword [esp + edx*4 + 0x1a8]
fmulp st(1)
fild dword [esp + edx*4 + 0x1a8]
shr eax, 0x1f
fadd qword [eax*8 + 0x10215b50]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
faddp st(1)
mov dword [esp + 0x14], edi
fild dword [esp + 0x14]
shr edi, 0x1f
mov eax, dword [esp + 0x3c]
fxch st(1)
fmul qword [eax*8 + 0x10216ab8]
fxch st(1)
fadd qword [edi*8 + 0x10215b50]
fstp qword [esp + 0x1c]
fld qword [esp + 0x1c]
faddp st(1)
cmp dword [esp + 0x40], 0
jl 0x1005b924
jle 0x1005b1b4
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x34], 0
fmul qword [eax*8 + 0x10216ab8]
je 0x1005b1b4
mov eax, dword [esp + 0x34]
fmul qword [eax*8 + 0x10216ab8]
test bl, 8
je 0x1005b1bb
fchs
cmp dword [esp + 0xc4], 0
je 0x1005b1ef
test ebp, 0x40000
je 0x1005b1df
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0xa0]
mov dword [edx], eax
jmp 0x1005b1ef
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0xc8]
mov dword [edx], eax
mov eax, dword [esp + 0x294]
test eax, eax
je 0x1005b1ff
shr ebx, 0x18
mov dword [eax], ebx
mov ecx, dword [esp + 0x264]
mov dword [esp + 0x264], 0
xor ecx, esp
cmp ecx, dword [0x10234e38]
jne 0x1005b4e7
add esp, 0x268
pop ebp
pop ebx
pop edi
pop esi
ret
xor edx, edx
fldz
xor edi, edi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], edx
mov dword [esp + 0x98], edx
jmp 0x1005998e
fstp st(0)
call fcn.101a6152
mov ecx, dword [esp + 0x18]
jmp 0x100597f9
mov dword [esp + 0xc8], edx
mov edi, dword [esp + 0x70]
mov edx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x94]
jmp 0x1005998e
mov dword [esp], 1
jmp 0x10059be5
mov ecx, dword [esp + 0x70]
shr ecx, 1
je 0x1005b5be
mov esi, dword [esp + 0x70]
xor edx, edx
mov dword [esp + 0x94], ebp
xor edi, edi
lea eax, [esp + esi*4 + 0x1e4]
lea esi, [esp + esi*4 + 0x1a4]
mov ebp, dword [edi + esi]
inc edx
mov dword [edi + eax], ebp
mov ebp, dword [edi + esi - 4]
mov dword [edi + eax - 4], ebp
add edi, 0xfffffff8
cmp edx, ecx
jb 0x1005b56c
mov ebp, dword [esp + 0x94]
lea eax, [edx + edx + 1]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x70]
jae 0x10059c94
shl eax, 2
mov ecx, dword [esp + 0x70]
neg eax
lea edx, [esp + ecx*4 + 0x1a4]
mov esi, dword [eax + edx + 4]
lea edi, [esp + ecx*4 + 0x1e4]
mov dword [eax + edi + 4], esi
jmp 0x10059c94
mov eax, 1
jmp 0x1005b58d
lea eax, [esp + 0x1ec]
mov dword [esp + 0x38], eax
jmp 0x10059fe4
lea eax, [esp + 0x22c]
jmp 0x1005a613
mov dword [esp], 1
jmp 0x1005a508
mov eax, 1
jmp 0x1005a9ce
mov esi, 1
jmp 0x1005abaa
mov esi, 1
jmp 0x1005ac64
mov eax, 1
jmp 0x1005a8f5
mov eax, 1
jmp 0x1005a74a
mov eax, dword [esp + 0x1c]
cmp dword [eax], 0
je 0x1005a54f
jmp 0x1005a553
mov eax, 1
jmp 0x1005a41c
mov eax, 1
jmp 0x1005a272
mov dword [esp + 0x20], 8
lea ecx, [esp + 0x22c]
jmp 0x1005a178
neg edx
mov ecx, edx
sar ecx, 3
movzx eax, word [ecx*2 + 0x102166a0]
mov esi, eax
shr esi, 5
cmp esi, edx
jge 0x1005b67e
movzx eax, word [ecx*2 + 0x102166a2]
mov esi, eax
shr esi, 5
and eax, 0x1f
add dword [esp + 0x40], esi
movsx edx, word [eax*2 + 0x102167fa]
mov ecx, dword [eax*8 + 0x10216624]
mov eax, dword [eax*8 + 0x10216620]
mov dword [esp + 0x14], edx
mov dword [esp + 0x168], ecx
mov dword [esp + 0x16c], eax
jmp 0x1005a11c
mov dword [esp + 0x70], eax
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x94]
mov eax, dword [esp + 0x70]
cmp dword [esp + eax*4 + 0xe4], 0
jne 0x1005b904
mov esi, eax
dec esi
lea ecx, [esp + esi*4 + 0xe4]
mov edx, dword [ecx]
lea eax, [esi*4]
test edx, edx
je 0x1005b6d5
mov dword [esp + 0x70], esi
mov dword [esp + 0x34], 0
test edx, edx
jle 0x1005b70b
mov esi, dword [esp + 0x34]
add edx, edx
inc esi
test edx, edx
jg 0x1005b6fe
mov dword [esp + 0x34], esi
mov dword [ecx], edx
mov ecx, dword [esp + 0x70]
shl ecx, 5
mov esi, dword [esp + 0x34]
sub ecx, esi
mov dword [esp + 0xcc], ecx
test esi, esi
je 0x1005b837
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x1e8], edx
lea edx, [ecx - 1]
cmp ecx, 1
je 0x1005b8c3
mov esi, edx
lea eax, [esp + eax + 0x1e4]
mov dword [esp + 0x14], eax
shr esi, 1
je 0x1005b8f3
mov edi, ecx
xor eax, eax
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x34]
lea ecx, [esp + edi*4 + 0xe0]
mov dword [esp + 0x1c], ecx
lea ecx, [edi*4 - 4]
neg ecx
neg esi
add ecx, dword [esp + 0x14]
mov dword [esp + 0x20], esi
mov dword [esp], edx
mov edx, eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x94], ebp
nop
lea esi, [esi]
lea edi, [edi]
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
mov ebx, dword [edx + edi]
mov esi, ebx
shr esi, cl
mov edi, dword [edx + edi - 4]
add edx, 0xfffffff8
or dword [ebp + eax*8], esi
mov esi, edi
mov ecx, dword [esp + 0x34]
shl ebx, cl
mov ecx, dword [esp + 0x20]
shr esi, cl
mov ecx, dword [esp + 0x34]
or ebx, esi
shl edi, cl
mov dword [ebp + eax*8 + 4], ebx
mov dword [ebp + eax*8 + 8], edi
inc eax
cmp eax, dword [esp + 0x38]
jb 0x1005b7a0
mov edx, dword [esp]
lea ecx, [eax + eax + 1]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x94]
lea eax, [ecx - 1]
cmp eax, edx
jae 0x1005b8ce
mov dword [esp + 0x6c], ebx
mov ebx, ecx
sub ebx, edx
sub edx, ecx
mov eax, dword [esp + 0x34]
mov ecx, eax
neg ecx
mov edi, dword [esp + 0x14]
mov edx, dword [esp + edx*4 + 0xe8]
mov esi, edx
shr esi, cl
mov ecx, eax
mov eax, edi
shl edx, cl
or dword [edi + ebx*4 - 4], esi
mov dword [eax + ebx*4], edx
mov ebx, dword [esp + 0x6c]
jmp 0x1005b8ce
cmp dword [esp + 0x70], 0
je 0x1005b8c3
mov edi, dword [esp + 0x70]
lea edx, [esp + eax + 0x1e4]
mov dword [esp + 0x14], edx
shr edi, 1
je 0x1005b8fd
mov edx, dword [esp + 0x70]
xor esi, esi
neg eax
add eax, dword [esp + 0x14]
mov dword [esp + 0x94], ebp
lea ecx, [esp + edx*4 + 0xe4]
mov edx, esi
mov ebp, dword [edx + ecx]
mov dword [eax + esi*8 + 4], ebp
mov ebp, dword [edx + ecx - 4]
add edx, 0xfffffff8
mov dword [eax + esi*8 + 8], ebp
inc esi
cmp esi, edi
jb 0x1005b875
mov ebp, dword [esp + 0x94]
lea eax, [esi + esi + 1]
lea edx, [eax - 1]
cmp edx, dword [esp + 0x70]
jae 0x1005b8ce
mov esi, dword [esp + 0x70]
lea edx, [eax*4]
neg edx
sub eax, esi
lea ecx, [esp + esi*4 + 0xe4]
mov edi, dword [edx + ecx + 4]
mov edx, dword [esp + 0x14]
mov dword [edx + eax*4], edi
jmp 0x1005b8ce
lea eax, [esp + eax + 0x1e4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
cmp dword [eax], 0
jne 0x10059dc4
mov eax, dword [esp + 0x70]
dec eax
cmp dword [esp + eax*4 + 0x1e4], 0
je 0x1005b8df
mov dword [esp + 0x70], eax
jmp 0x10059dc4
mov ecx, 1
jmp 0x1005b7f5
mov eax, 1
jmp 0x1005b897
mov eax, dword [esp + 0x38]
lea eax, [eax*4 + 4]
lea ecx, [esp + eax + 0xe4]
mov edx, dword [ecx]
jmp 0x1005b6ee
mov ebp, ebx
jmp 0x1005afd2
mov eax, dword [esp + 0x40]
shl eax, 3
neg eax
fdiv qword [eax + 0x10216ab8]
jmp 0x1005b1b4
mov edx, 1
jmp 0x1005b12b
mov dword [esp + 0xbc], edx
xor edx, edx
xor edi, edi
fldz
mov dword [esp + 0xc8], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x38], edx
mov dword [esp + 0x98], edx
jmp 0x1005998e
mov ecx, edi
jmp 0x10059535
fldz
mov ebx, 0x6000000
jmp 0x1005b1bb
fstp st(0)
jmp 0x1005b15f