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

Disassembly:
mov ecx, dword [esp + 0xc]
sub esp, 0x730
test ecx, ecx
push ebx
mov dword [esp + 0xc], ecx
push esi
push edi
push ebp
jle 0x43d5cf
mov eax, dword [esp + 0x748]
mov ecx, dword [esp + 0x744]
mov dword [esp + 0x26c], eax
and eax, 0x80000000
mov edx, eax
mov dword [esp + 0x268], ecx
mov esi, dword [esp + 0x26c]
xor edx, dword [esp + 0x26c]
and esi, 0x7ff00000
test eax, eax
je 0x43abf5
fld qword [esp + 0x744]
fchs
fstp qword [esp + 0x744]
test esi, esi
je 0x43acce
cmp esi, 0x7ff00000
je 0x43acce
mov ecx, dword [esp + 0x768]
cmp eax, 1
sbb eax, eax
shr esi, 0x14
and eax, 6
sub eax, 3
sub esi, 0x3fe
mov dword [ecx], eax
mov dword [esp + 0x34], esi
mov eax, 0x35
sub eax, esi
test esi, esi
mov dword [esp + 0x60], eax
jle 0x43acc0
test eax, eax
jle 0x43acc0
fld qword [esp + 0x744]
fadd qword [0x460530]
mov eax, dword [esp + 0x748]
mov ecx, dword [esp + 0x744]
mov dword [esp + 0x25c], eax
mov dword [esp + 0x258], ecx
fstp qword [esp + 0x278]
fld qword [esp + 0x278]
fsub qword [0x460530]
fcom qword [esp + 0x258]
fstp qword [esp + 0x744]
fnstsw ax
test ah, 0x41
jne 0x43aca3
fld1
fsubr qword [esp + 0x744]
fstp qword [esp + 0x744]
fld qword [esp + 0x744]
fcomp qword [esp + 0x258]
fnstsw ax
test ah, 0x40
je 0x43acc0
mov dword [esp + 0x60], 0
shr edx, 4
sub edx, 0x3ff0000
jmp 0x43ae1e
mov ecx, esi
xor ecx, edx
or ecx, dword [esp + 0x268]
je 0x43d4cb
test esi, esi
je 0x43ad3e
mov ecx, dword [esp + 0x768]
mov eax, 0x473b48
mov edx, dword [esp + 0x758]
mov dword [ecx], 0
cmp byte [0x473b48], 0
je 0x43ad10
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
cmp byte [eax], 0
jne 0x43ad05
mov eax, dword [esp + 0x758]
mov ecx, edx
sub ecx, eax
mov esi, dword [esp + 0x764]
xor edi, edi
mov dword [esi], ecx
test byte [esp + 0x757], 0x40
je 0x43d5ee
mov edi, 0xa
jmp 0x43d5ee
mov ecx, dword [esp + 0x768]
cmp eax, 1
sbb eax, eax
and eax, 4
sub eax, 2
test byte [esp + 0x757], 0x10
mov dword [ecx], eax
jne 0x43d543
mov eax, dword [esp + 0x748]
mov ecx, dword [esp + 0x744]
mov dword [esp + 0x254], eax
mov dword [esp + 0x250], ecx
mov edx, dword [esp + 0x254]
and edx, 0x7ff00000
shr edx, 0x14
test edx, edx
je 0x43ada9
mov esi, dword [esp + 0x254]
mov eax, ecx
shr eax, 0x15
or esi, 0xfff00000
shl esi, 0xb
or esi, eax
jmp 0x43adf9
cmp dword [esp + 0x254], 0
je 0x43ade0
mov esi, dword [esp + 0x254]
xor ebx, ebx
shl esi, 0xc
test esi, esi
jle 0x43adca
add esi, esi
inc ebx
test esi, esi
jg 0x43adc3
sub edx, ebx
mov eax, dword [esp + 0x250]
mov cl, 0x20
add ebx, 0xc
sub cl, bl
shr eax, cl
or esi, eax
jmp 0x43adf9
mov esi, dword [esp + 0x250]
xor eax, eax
cmp esi, eax
jle 0x43adf4
add esi, esi
inc eax
test esi, esi
jg 0x43aded
add eax, 0x14
sub edx, eax
sub edx, 0x3fe
and esi, 0x7fff8000
shr esi, 0xf
dec edx
mov dword [esp + 0x34], 0
mov dword [esp + 0x60], 0x35
shl edx, 0x10
or edx, esi
mov eax, 0x4d104d42
test edx, edx
jge 0x43ae2c
mov eax, 0x4d104d43
mov dword [esp + 0x234], edx
mov dword [esp + 0x230], eax
mov eax, dword [esp + 0x234]
imul dword [esp + 0x230]
mov dword [esp + 0x22c], edx
mov edx, dword [esp + 0x22c]
mov eax, dword [esp + 0x754]
sar edx, 0x10
and eax, 2
inc edx
mov dword [esp + 0x8c], eax
mov esi, dword [esp + 0x764]
cmp dword [esp + 0x8c], 0
mov dword [esi], edx
je 0x43aeca
cmp dword [esp + 0x750], 0
jl 0x43d5cf
mov eax, dword [esp + 0x750]
add eax, edx
mov dword [esp + 0x18], eax
cmp dword [esp + 0x74c], eax
jge 0x43aeaf
mov ecx, dword [esp + 0x74c]
mov dword [esp + 0x18], ecx
jmp 0x43aeca
cmp dword [esp + 0x18], 0
jl 0x43d543
jne 0x43aeca
test byte [esp + 0x756], 0x40
jne 0x43d543
neg edx
mov dword [esp + 0x10], edx
test edx, edx
jne 0x43afaa
mov eax, dword [esp + 0x748]
mov ecx, dword [esp + 0x744]
mov dword [esp + 0x244], eax
and eax, 0x7ff00000
shr eax, 0x14
mov dword [esp + 0x240], ecx
mov dword [esp + 0x20], eax
test eax, eax
je 0x43af22
mov edx, dword [esp + 0x244]
mov eax, ecx
shr eax, 0x15
or edx, 0xfff00000
shl edx, 0xb
mov esi, ecx
shl esi, 0xb
or edx, eax
jmp 0x43af83
cmp dword [esp + 0x244], 0
je 0x43af66
mov edx, dword [esp + 0x244]
xor ebx, ebx
shl edx, 0xc
test edx, edx
jle 0x43af43
add edx, edx
inc ebx
test edx, edx
jg 0x43af3c
mov eax, dword [esp + 0x240]
mov cl, 0x20
mov esi, dword [esp + 0x240]
sub dword [esp + 0x20], ebx
add ebx, 0xc
sub cl, bl
shr eax, cl
or edx, eax
mov cl, bl
shl esi, cl
jmp 0x43af83
mov edx, dword [esp + 0x240]
xor esi, esi
xor eax, eax
cmp edx, esi
jle 0x43af7c
add edx, edx
inc eax
test edx, edx
jg 0x43af75
add eax, 0x14
sub dword [esp + 0x20], eax
mov dword [esp + 0x304], edx
mov dword [esp + 0x308], esi
sub dword [esp + 0x20], 0x3fe
cmp esi, 1
sbb eax, eax
add eax, 2
mov dword [esp + 0x14], eax
jmp 0x43d093
cmp dword [esp + 0x18], 0xf
jl 0x43afcb
cmp dword [esp + 0x34], 0
jle 0x43b1b1
mov eax, dword [esp + 0x10]
add eax, 0xf
test eax, eax
jle 0x43b1b1
cmp dword [esp + 0x10], 0xfffffece
jl 0x43b1b1
cmp dword [esp + 0x10], 0x132
jg 0x43b1b1
cmp dword [esp + 0x10], 0xffffffd1
jge 0x43b048
mov ecx, dword [esp + 0x10]
neg ecx
mov edx, ecx
sar edx, 3
mov ax, word [edx*2 + 0x461608]
shr ax, 5
movzx ebx, ax
cmp ebx, ecx
jge 0x43b00d
inc edx
mov cx, word [edx*2 + 0x461608]
mov edi, dword [esp + 0x10]
mov ax, cx
shr ax, 2
movzx eax, ax
and eax, 0xfffffff8
fld qword [eax + edi*8 + 0x461400]
xor eax, eax
mov ax, cx
and eax, 0x1f
fmul qword [eax*8 + 0x461580]
fstp qword [esp + 0x260]
jmp 0x43b0c8
cmp dword [esp + 0x10], 0x2f
jle 0x43b0a8
mov ecx, dword [esp + 0x10]
sar ecx, 3
mov ax, word [ecx*2 + 0x4616da]
shr ax, 5
movzx edx, ax
cmp edx, dword [esp + 0x10]
jg 0x43b06c
inc ecx
mov dx, word [ecx*2 + 0x4616d8]
mov ecx, dword [esp + 0x10]
shl ecx, 3
mov ax, dx
shr ax, 2
movzx eax, ax
and eax, 0xfffffff8
sub ecx, eax
xor eax, eax
fld qword [ecx + 0x461400]
mov ax, dx
and eax, 0x1f
fmul qword [eax*8 + 0x461660]
fstp qword [esp + 0x260]
jmp 0x43b0c8
mov edi, dword [esp + 0x10]
mov eax, dword [edi*8 + 0x461404]
mov ecx, dword [edi*8 + 0x461400]
mov dword [esp + 0x264], eax
mov dword [esp + 0x260], ecx
fld qword [0x461208]
fmul qword [esp + 0x260]
fadd qword [esp + 0x260]
fmul qword [esp + 0x744]
fstp qword [esp + 0x248]
mov eax, dword [esp + 0x24c]
and eax, 0x7ff00000
shr eax, 0x14
mov dword [esp + 0x20], eax
test eax, eax
je 0x43b129
mov edx, dword [esp + 0x24c]
mov eax, dword [esp + 0x248]
shr eax, 0x15
or edx, 0xfff00000
shl edx, 0xb
mov esi, dword [esp + 0x248]
shl esi, 0xb
or edx, eax
jmp 0x43b18a
cmp dword [esp + 0x24c], 0
je 0x43b16d
mov edx, dword [esp + 0x24c]
xor ebx, ebx
shl edx, 0xc
test edx, edx
jle 0x43b14a
add edx, edx
inc ebx
test edx, edx
jg 0x43b143
mov eax, dword [esp + 0x248]
mov cl, 0x20
mov esi, dword [esp + 0x248]
sub dword [esp + 0x20], ebx
add ebx, 0xc
sub cl, bl
shr eax, cl
or edx, eax
mov cl, bl
shl esi, cl
jmp 0x43b18a
mov edx, dword [esp + 0x248]
xor esi, esi
xor eax, eax
cmp edx, esi
jle 0x43b183
add edx, edx
inc eax
test edx, edx
jg 0x43b17c
add eax, 0x14
sub dword [esp + 0x20], eax
mov dword [esp + 0x304], edx
mov dword [esp + 0x308], esi
sub dword [esp + 0x20], 0x3fe
cmp esi, 1
sbb eax, eax
add eax, 2
mov dword [esp + 0x14], eax
jmp 0x43d093
cmp dword [esp + 0x10], 0xfffffeaa
jl 0x43b1dc
cmp dword [esp + 0x10], 0x159
jg 0x43b1dc
cmp dword [esp + 0x18], 0x11
mov eax, 0x80
jg 0x43b1d6
mov eax, 0x40
mov dword [esp + 0x28], eax
jmp 0x43b1e4
mov dword [esp + 0x28], 0x80
mov eax, dword [esp + 0x748]
mov ecx, dword [esp + 0x744]
mov dword [esp + 0x23c], eax
and eax, 0x7ff00000
shr eax, 0x14
mov dword [esp + 0x238], ecx
mov dword [esp + 0x20], eax
test eax, eax
je 0x43b22e
mov edx, dword [esp + 0x23c]
mov eax, ecx
shr eax, 0x15
or edx, 0xfff00000
shl edx, 0xb
mov esi, ecx
shl esi, 0xb
or edx, eax
jmp 0x43b28f
cmp dword [esp + 0x23c], 0
je 0x43b272
mov edx, dword [esp + 0x23c]
xor ebx, ebx
shl edx, 0xc
test edx, edx
jle 0x43b24f
add edx, edx
inc ebx
test edx, edx
jg 0x43b248
mov eax, dword [esp + 0x238]
mov cl, 0x20
mov esi, dword [esp + 0x238]
sub dword [esp + 0x20], ebx
add ebx, 0xc
sub cl, bl
shr eax, cl
or edx, eax
mov cl, bl
shl esi, cl
jmp 0x43b28f
mov edx, dword [esp + 0x238]
xor esi, esi
xor eax, eax
cmp edx, esi
jle 0x43b288
add edx, edx
inc eax
test edx, edx
jg 0x43b281
add eax, 0x14
sub dword [esp + 0x20], eax
mov dword [esp + 0x304], edx
mov dword [esp + 0x308], esi
sub dword [esp + 0x20], 0x3fe
mov ecx, dword [esp + 0x10]
cmp esi, 1
sbb eax, eax
mov dword [esp + 0x24], ecx
add eax, 2
cmp dword [esp + 0x28], 0x40
mov dword [esp + 0x14], eax
jne 0x43b77f
mov esi, 2
cmp ecx, 0xffffffd1
jl 0x43b31e
cmp ecx, 0x2f
jg 0x43b31e
movsx eax, word [ecx*2 + 0x460a56]
lea ecx, [ecx*8 + 0x46087c]
lea edx, [esp + 0x284]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx]
sub ecx, 4
mov dword [edx], eax
add edx, 4
lea eax, [esp + 0x288]
cmp edx, eax
jbe 0x43b2ed
cmp dword [esp + 0x288], 0
jne 0x43cd8c
sub eax, 4
dec esi
cmp dword [eax], 0
je 0x43b310
jmp 0x43cd8c
cmp dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
jge 0x43b392
neg ecx
mov edx, ecx
sar edx, 3
mov ax, word [edx*2 + 0x460b50]
shr ax, 5
movzx ebx, ax
cmp ebx, ecx
jge 0x43b344
inc edx
mov ax, word [edx*2 + 0x460b50]
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dx, ax
shr ax, 5
and edx, 0x1f
movzx ebx, ax
movsx eax, word [edx*2 + 0x460b30]
add ecx, ebx
lea edx, [edx*8 + 0x460abc]
lea edi, [esp + 0x344]
mov dword [esp + 0x30], eax
mov eax, dword [edx]
sub edx, 4
mov dword [edi], eax
add edi, 4
lea eax, [esp + 0x348]
cmp edi, eax
jbe 0x43b37b
jmp 0x43b3f7
sar ecx, 3
mov ax, word [ecx*2 + 0x460c42]
shr ax, 5
movzx edx, ax
cmp edx, dword [esp + 0x10]
jg 0x43b3ab
inc ecx
mov ax, word [ecx*2 + 0x460c40]
xor edx, edx
mov dx, ax
mov ecx, dword [esp + 0x10]
shr ax, 5
and edx, 0x1f
movzx ebx, ax
movsx eax, word [edx*2 + 0x460c20]
sub ecx, ebx
lea edx, [edx*8 + 0x460bbc]
lea edi, [esp + 0x344]
mov dword [esp + 0x30], eax
mov eax, dword [edx]
sub edx, 4
mov dword [edi], eax
add edi, 4
lea eax, [esp + 0x348]
cmp edi, eax
jbe 0x43b3e2
movsx eax, word [ecx*2 + 0x460a56]
lea ecx, [ecx*8 + 0x46087c]
lea edx, [esp + 0x284]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx]
sub ecx, 4
mov dword [edx], eax
add edx, 4
lea eax, [esp + 0x288]
cmp edx, eax
jbe 0x43b411
cmp dword [esp + 0x288], 0
jne 0x43b439
sub eax, 4
dec esi
cmp dword [eax], 0
je 0x43b430
lea ebx, [esi + 1]
mov ecx, dword [esp + esi*4 + 0x280]
mov eax, dword [esp + 0x348]
mov dword [esp + 0x228], ecx
mov dword [esp + 0x224], eax
mov eax, dword [esp + 0x228]
mul dword [esp + 0x224]
mov dword [esp + 0x220], eax
mov dword [esp + 0x21c], edx
lea edi, [ebx*4]
mov eax, dword [esp + 0x220]
mov edx, dword [esp + 0x21c]
lea ebp, [esp + 0x344]
dec ebx
mov dword [esp + edi + 0x404], eax
mov dword [esp + edi + 0x700], 0
mov dword [esp + edi + 0x400], edx
mov eax, dword [ebp]
mov dword [esp + 0x218], ecx
mov dword [esp + 0x214], eax
mov eax, dword [esp + 0x218]
mul dword [esp + 0x214]
mov dword [esp + 0x210], eax
mov dword [esp + 0x20c], edx
mov edx, dword [esp + 0x210]
mov eax, dword [esp + edi + 0x400]
add eax, edx
mov dword [esp + edi + 0x400], eax
cmp eax, edx
mov eax, 1
adc eax, 0xffffffff
sub edi, 4
add eax, dword [esp + 0x20c]
sub ebp, 4
mov dword [esp + edi + 0x400], eax
lea eax, [esp + 0x340]
cmp ebp, eax
jne 0x43b4aa
mov dword [esp + ebx*4 + 0x700], 0
dec ebx
js 0x43b549
lea edi, [esp + ebx*4 + 0x400]
lea edx, [ebx*4]
inc ebx
xor eax, eax
std
mov ecx, ebx
rep stosd dword es:[edi], eax
lea edi, [esp + edx + 0x700]
mov ecx, ebx
cld
std
rep stosd dword es:[edi], eax
cld
lea eax, [esi - 1]
test eax, eax
je 0x43b607
lea ebx, [esp + eax*4 + 0x280]
lea edi, [eax*4 + 8]
mov ecx, edi
lea ebp, [esp + 0x348]
mov eax, dword [ebx]
mov edx, dword [ebp]
mov dword [esp + 0x208], eax
mov dword [esp + 0x204], edx
mov eax, dword [esp + 0x208]
mul dword [esp + 0x204]
mov dword [esp + 0x200], eax
mov dword [esp + 0x1fc], edx
mov edx, dword [esp + 0x200]
mov eax, dword [esp + ecx + 0x400]
add eax, edx
mov dword [esp + ecx + 0x400], eax
cmp eax, edx
mov eax, 1
mov edx, dword [esp + ecx + 0x3fc]
adc eax, 0xffffffff
add eax, dword [esp + 0x1fc]
add edx, eax
mov dword [esp + ecx + 0x3fc], edx
cmp edx, eax
mov eax, 1
adc eax, 0xffffffff
sub ecx, 4
sub ebp, 4
add dword [esp + ecx + 0x6fc], eax
lea eax, [esp + 0x340]
cmp ebp, eax
jne 0x43b56b
sub ebx, 4
sub edi, 4
cmp edi, 8
jne 0x43b562
lea edx, [esp + esi*4 + 0x288]
mov ecx, dword [esp + esi*4 + 0x408]
add esi, 2
mov eax, dword [esp + 0x30]
xor edi, edi
add dword [esp + 0x1c], eax
lea eax, [esi - 1]
mov dword [edx], ecx
test eax, eax
je 0x43b658
lea ecx, [eax*4]
add edi, dword [esp + ecx + 0x700]
mov eax, dword [esp + ecx + 0x400]
add eax, edi
mov dword [esp + ecx + 0x280], eax
cmp eax, edi
mov edi, 1
adc edi, 0xffffffff
sub ecx, 4
jne 0x43b632
cmp dword [edx], 0
jne 0x43b666
sub edx, 4
dec esi
cmp dword [edx], 0
je 0x43b65d
cmp dword [esp + 0x284], 0
jle 0x43b69d
shl dword [esp + 0x284], 1
dec dword [esp + 0x1c]
cmp esi, 2
jb 0x43b69d
lea ecx, [esp + 0x288]
lea eax, [esi - 1]
mov edx, dword [ecx]
add ecx, 4
shr edx, 0x1f
or dword [ecx - 8], edx
shl dword [ecx - 4], 1
dec eax
jne 0x43b68b
cmp dword [esp + esi*4 + 0x280], 0
jne 0x43b6a8
dec esi
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x28]
shr eax, 5
and edx, 0x1f
xor ecx, ecx
mov ebx, 1
cmp ecx, edx
adc ebx, 0xffffffff
lea edi, [eax + ebx]
cmp esi, edi
jb 0x43cd8c
mov esi, edi
test ebx, ebx
je 0x43b6e0
mov ebp, 1
mov cl, 0x1f
sub cl, dl
shl ebp, cl
jmp 0x43b6f1
cmp dword [esp + edi*4 + 0x284], 0
mov ebp, 1
jl 0x43b6f1
xor ebp, ebp
test edi, edi
je 0x43cd7c
lea ecx, [esp + edi*4 + 0x280]
mov edx, dword [ecx]
add edx, ebp
mov dword [ecx], edx
cmp ebp, edx
jbe 0x43b756
lea eax, [esp + edi*4 + 0x27c]
lea esi, [edi - 1]
mov dword [esp + 0x280], 0
cmp dword [eax], 0xffffffff
jne 0x43b72d
sub eax, 4
dec esi
cmp dword [eax], 0xffffffff
je 0x43b724
test esi, esi
je 0x43b73d
inc dword [esp + esi*4 + 0x280]
jmp 0x43cd8c
mov dword [esp + 0x284], 0x80000000
mov esi, 1
add dword [esp + 0x1c], esi
jmp 0x43cd8c
test ebx, ebx
je 0x43b768
lea eax, [ebp*2]
dec eax
not eax
and eax, edx
mov dword [ecx], eax
cmp dword [ecx], 0
jne 0x43cd8c
sub ecx, 4
dec esi
cmp dword [ecx], 0
je 0x43b771
jmp 0x43cd8c
mov dword [esp + 0x3c], 4
xor ebx, ebx
cmp dword [esp + 0x10], 0xfffffdea
jge 0x43bbc5
mov dword [esp + 0xb8], 0x1000
mov dword [esp + 0xb4], 0x460ec4
mov dword [esp + 0x88], 0x460ece
mov eax, dword [esp + 0xb8]
neg eax
cmp eax, dword [esp + 0x24]
jl 0x43bb97
mov ecx, dword [esp + 0xb8]
add dword [esp + 0x24], ecx
test ebx, ebx
je 0x43bb61
mov eax, dword [esp + 0x88]
lea edx, [esp + 0x344]
movsx ecx, word [eax]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0xb4]
mov eax, dword [ecx]
sub ecx, 4
mov dword [edx], eax
add edx, 4
lea eax, [esp + 0x350]
cmp edx, eax
jbe 0x43b7fa
lea esi, [ebx + 3]
mov ecx, dword [esp + ebx*4 + 0x2c0]
mov eax, dword [esp + 0x350]
mov dword [esp + 0x1f8], ecx
mov dword [esp + 0x1f4], eax
mov eax, dword [esp + 0x1f8]
mul dword [esp + 0x1f4]
mov dword [esp + 0x1f0], eax
mov dword [esp + 0x1ec], edx
lea edi, [esi*4]
mov eax, dword [esp + 0x1f0]
mov edx, dword [esp + 0x1ec]
lea ebp, [esp + 0x34c]
mov dword [esp + edi + 0x3c4], eax
xor eax, eax
sub esi, 3
mov dword [esp + edi + 0x3c0], edx
lea edx, [esp + edi + 0x6c0]
mov dword [edx], eax
mov dword [edx - 4], eax
mov dword [edx - 8], eax
mov eax, dword [ebp]
mov dword [esp + 0x1e8], ecx
mov dword [esp + 0x1e4], eax
mov eax, dword [esp + 0x1e8]
mul dword [esp + 0x1e4]
mov dword [esp + 0x1e0], eax
mov dword [esp + 0x1dc], edx
mov edx, dword [esp + 0x1e0]
mov eax, dword [esp + edi + 0x3c0]
add eax, edx
mov dword [esp + edi + 0x3c0], eax
cmp eax, edx
mov eax, 1
adc eax, 0xffffffff
sub edi, 4
add eax, dword [esp + 0x1dc]
sub ebp, 4
mov dword [esp + edi + 0x3c0], eax
lea eax, [esp + 0x340]
cmp ebp, eax
jne 0x43b888
mov dword [esp + esi*4 + 0x6c0], 0
dec esi
js 0x43b927
lea edi, [esp + esi*4 + 0x3c0]
lea edx, [esi*4]
inc esi
xor eax, eax
std
mov ecx, esi
rep stosd dword es:[edi], eax
lea edi, [esp + edx + 0x6c0]
mov ecx, esi
cld
std
rep stosd dword es:[edi], eax
cld
lea eax, [ebx - 1]
test eax, eax
je 0x43b9e5
lea edi, [esp + eax*4 + 0x2c0]
lea esi, [eax*4 + 0x10]
mov ecx, esi
lea ebp, [esp + 0x350]
mov eax, dword [edi]
mov edx, dword [ebp]
mov dword [esp + 0x1d8], eax
mov dword [esp + 0x1d4], edx
mov eax, dword [esp + 0x1d8]
mul dword [esp + 0x1d4]
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1cc], edx
mov edx, dword [esp + 0x1d0]
mov eax, dword [esp + ecx + 0x3c0]
add eax, edx
mov dword [esp + ecx + 0x3c0], eax
cmp eax, edx
mov eax, 1
mov edx, dword [esp + ecx + 0x3bc]
adc eax, 0xffffffff
add eax, dword [esp + 0x1cc]
add edx, eax
mov dword [esp + ecx + 0x3bc], edx
cmp edx, eax
mov eax, 1
adc eax, 0xffffffff
sub ecx, 4
sub ebp, 4
add dword [esp + ecx + 0x6bc], eax
lea eax, [esp + 0x340]
cmp ebp, eax
jne 0x43b949
sub edi, 4
sub esi, 4
cmp esi, 0x10
jne 0x43b940
lea edx, [esp + ebx*4 + 0x2d0]
mov ecx, dword [esp + ebx*4 + 0x3d0]
add ebx, 4
mov eax, dword [esp + 0x30]
xor esi, esi
add dword [esp + 0x2c], eax
lea eax, [ebx - 1]
mov dword [edx], ecx
test eax, eax
je 0x43ba36
lea ecx, [eax*4]
add esi, dword [esp + ecx + 0x6c0]
mov eax, dword [esp + ecx + 0x3c0]
add eax, esi
mov dword [esp + ecx + 0x2c0], eax
cmp eax, esi
mov esi, 1
adc esi, 0xffffffff
sub ecx, 4
jne 0x43ba10
cmp dword [edx], 0
jne 0x43ba44
sub edx, 4
dec ebx
cmp dword [edx], 0
je 0x43ba3b
cmp dword [esp + 0x2c4], 0
jle 0x43ba7b
shl dword [esp + 0x2c4], 1
dec dword [esp + 0x2c]
cmp ebx, 2
jb 0x43ba7b
lea ecx, [esp + 0x2c8]
lea eax, [ebx - 1]
mov edx, dword [ecx]
add ecx, 4
shr edx, 0x1f
or dword [ecx - 8], edx
shl dword [ecx - 4], 1
dec eax
jne 0x43ba69
cmp dword [esp + ebx*4 + 0x2c0], 0
jne 0x43ba86
dec ebx
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x28]
shr eax, 5
and edx, 0x1f
xor ecx, ecx
mov edi, 1
cmp ecx, edx
adc edi, 0xffffffff
lea esi, [eax + edi]
cmp ebx, esi
jb 0x43bb97
mov ebx, esi
test edi, edi
je 0x43babe
mov ebp, 1
mov cl, 0x1f
sub cl, dl
shl ebp, cl
jmp 0x43bacf
cmp dword [esp + esi*4 + 0x2c4], 0
mov ebp, 1
jl 0x43bacf
xor ebp, ebp
test esi, esi
je 0x43bb4f
lea ecx, [esp + esi*4 + 0x2c0]
mov edx, dword [ecx]
add edx, ebp
mov dword [ecx], edx
cmp ebp, edx
jbe 0x43bb2d
lea eax, [esp + esi*4 + 0x2bc]
lea ebx, [esi - 1]
mov dword [esp + 0x2c0], 0
cmp dword [eax], 0xffffffff
jne 0x43bb07
sub eax, 4
dec ebx
cmp dword [eax], 0xffffffff
je 0x43bafe
test ebx, ebx
je 0x43bb17
inc dword [esp + ebx*4 + 0x2c0]
jmp 0x43bb97
mov dword [esp + 0x2c4], 0x80000000
mov ebx, 1
add dword [esp + 0x2c], ebx
jmp 0x43bb97
test edi, edi
je 0x43bb3f
lea eax, [ebp*2]
dec eax
not eax
and eax, edx
mov dword [ecx], eax
cmp dword [ecx], 0
jne 0x43bb97
sub ecx, 4
dec ebx
cmp dword [ecx], 0
je 0x43bb44
jmp 0x43bb97
mov ebx, ebp
add dword [esp + 0x2c], ebp
shl ebp, 0x1f
mov dword [esp + 0x2c4], ebp
jmp 0x43bb97
mov ebx, 4
mov eax, dword [esp + 0x88]
movsx ecx, word [eax]
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x2c4]
mov eax, dword [edx]
sub edx, 4
mov dword [ecx], eax
add ecx, 4
lea eax, [esp + 0x2d0]
cmp ecx, eax
jbe 0x43bb82
sar dword [esp + 0xb8], 1
sub dword [esp + 0xb4], 0x10
sub dword [esp + 0x88], 2
cmp dword [esp + 0x88], 0x460ec8
jae 0x43b7b8
jmp 0x43bffa
cmp dword [esp + 0x10], 0x216
jle 0x43bffa
mov dword [esp + 0xb0], 0x1000
mov dword [esp + 0xac], 0x46104c
mov dword [esp + 0x84], 0x461056
mov ecx, dword [esp + 0x24]
cmp ecx, dword [esp + 0xb0]
jl 0x43bfd1
mov ecx, dword [esp + 0xb0]
sub dword [esp + 0x24], ecx
test ebx, ebx
je 0x43bf9b
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0xac]
movsx ecx, word [eax]
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x344]
mov eax, dword [edx]
sub edx, 4
mov dword [ecx], eax
add ecx, 4
lea eax, [esp + 0x350]
cmp ecx, eax
jbe 0x43bc34
lea esi, [ebx + 3]
mov ecx, dword [esp + ebx*4 + 0x2c0]
mov eax, dword [esp + 0x350]
mov dword [esp + 0x1c8], ecx
mov dword [esp + 0x1c4], eax
mov eax, dword [esp + 0x1c8]
mul dword [esp + 0x1c4]
mov dword [esp + 0x1c0], eax
mov dword [esp + 0x1bc], edx
lea edi, [esi*4]
mov eax, dword [esp + 0x1c0]
mov edx, dword [esp + 0x1bc]
lea ebp, [esp + 0x34c]
mov dword [esp + edi + 0x384], eax
xor eax, eax
sub esi, 3
mov dword [esp + edi + 0x380], edx
lea edx, [esp + edi + 0x680]
mov dword [edx], eax
mov dword [edx - 4], eax
mov dword [edx - 8], eax
mov eax, dword [ebp]
mov dword [esp + 0x1b8], ecx
mov dword [esp + 0x1b4], eax
mov eax, dword [esp + 0x1b8]
mul dword [esp + 0x1b4]
mov dword [esp + 0x1b0], eax
mov dword [esp + 0x1ac], edx
mov eax, dword [esp + 0x1b0]
mov edx, dword [esp + edi + 0x380]
add edx, eax
mov dword [esp + edi + 0x380], edx
cmp edx, eax
mov eax, 1
adc eax, 0xffffffff
sub edi, 4
add eax, dword [esp + 0x1ac]
sub ebp, 4
mov dword [esp + edi + 0x380], eax
lea eax, [esp + 0x340]
cmp ebp, eax
jne 0x43bcc2
mov dword [esp + esi*4 + 0x680], 0
dec esi
js 0x43bd61
lea edi, [esp + esi*4 + 0x380]
lea edx, [esi*4]
inc esi
xor eax, eax
std
mov ecx, esi
rep stosd dword es:[edi], eax
lea edi, [esp + edx + 0x680]
mov ecx, esi
cld
std
rep stosd dword es:[edi], eax
cld
lea eax, [ebx - 1]
test eax, eax
je 0x43be1f
lea edi, [esp + eax*4 + 0x2c0]
lea esi, [eax*4 + 0x10]
mov ecx, esi
lea ebp, [esp + 0x350]
mov eax, dword [edi]
mov edx, dword [ebp]
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1a4], edx
mov eax, dword [esp + 0x1a8]
mul dword [esp + 0x1a4]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x19c], edx
mov eax, dword [esp + 0x1a0]
mov edx, dword [esp + ecx + 0x380]
add edx, eax
mov dword [esp + ecx + 0x380], edx
cmp edx, eax
mov eax, 1
mov edx, dword [esp + ecx + 0x37c]
adc eax, 0xffffffff
add eax, dword [esp + 0x19c]
add edx, eax
mov dword [esp + ecx + 0x37c], edx
cmp edx, eax
mov eax, 1
adc eax, 0xffffffff
sub ecx, 4
sub ebp, 4
add dword [esp + ecx + 0x67c], eax
lea eax, [esp + 0x340]
cmp ebp, eax
jne 0x43bd83
sub edi, 4
sub esi, 4
cmp esi, 0x10
jne 0x43bd7a
lea edx, [esp + ebx*4 + 0x2d0]
mov ecx, dword [esp + ebx*4 + 0x390]
add ebx, 4
mov eax, dword [esp + 0x30]
xor esi, esi
add dword [esp + 0x2c], eax
lea eax, [ebx - 1]
mov dword [edx], ecx
test eax, eax
je 0x43be70
lea ecx, [eax*4]
add esi, dword [esp + ecx + 0x680]
mov eax, dword [esp + ecx + 0x380]
add eax, esi
mov dword [esp + ecx + 0x2c0], eax
cmp eax, esi
mov esi, 1
adc esi, 0xffffffff
sub ecx, 4
jne 0x43be4a
cmp dword [edx], 0
jne 0x43be7e
sub edx, 4
dec ebx
cmp dword [edx], 0
je 0x43be75
cmp dword [esp + 0x2c4], 0
jle 0x43beb5
shl dword [esp + 0x2c4], 1
dec dword [esp + 0x2c]
cmp ebx, 2
jb 0x43beb5
lea ecx, [esp + 0x2c8]
lea eax, [ebx - 1]
mov edx, dword [ecx]
add ecx, 4
shr edx, 0x1f
or dword [ecx - 8], edx
shl dword [ecx - 4], 1
dec eax
jne 0x43bea3
cmp dword [esp + ebx*4 + 0x2c0], 0
jne 0x43bec0
dec ebx
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x28]
shr eax, 5
and edx, 0x1f
xor ecx, ecx
mov edi, 1
cmp ecx, edx
adc edi, 0xffffffff
lea esi, [eax + edi]
cmp ebx, esi
jb 0x43bfd1
mov ebx, esi
test edi, edi
je 0x43bef8
mov ebp, 1
mov cl, 0x1f
sub cl, dl
shl ebp, cl
jmp 0x43bf09
cmp dword [esp + esi*4 + 0x2c4], 0
mov ebp, 1
jl 0x43bf09
xor ebp, ebp
test esi, esi
je 0x43bf89
lea ecx, [esp + esi*4 + 0x2c0]
mov edx, dword [ecx]
add edx, ebp
mov dword [ecx], edx
cmp ebp, edx
jbe 0x43bf67
lea eax, [esp + esi*4 + 0x2bc]
lea ebx, [esi - 1]
mov dword [esp + 0x2c0], 0
cmp dword [eax], 0xffffffff
jne 0x43bf41
sub eax, 4
dec ebx
cmp dword [eax], 0xffffffff
je 0x43bf38
test ebx, ebx
je 0x43bf51
inc dword [esp + ebx*4 + 0x2c0]
jmp 0x43bfd1
mov dword [esp + 0x2c4], 0x80000000
mov ebx, 1
add dword [esp + 0x2c], ebx
jmp 0x43bfd1
test edi, edi
je 0x43bf79
lea eax, [ebp*2]
dec eax
not eax
and eax, edx
mov dword [ecx], eax
cmp dword [ecx], 0
jne 0x43bfd1
sub ecx, 4
dec ebx
cmp dword [ecx], 0
je 0x43bf7e
jmp 0x43bfd1
mov ebx, ebp
add dword [esp + 0x2c], ebp
shl ebp, 0x1f
mov dword [esp + 0x2c4], ebp
jmp 0x43bfd1
mov ebx, 4
mov eax, dword [esp + 0x84]
movsx ecx, word [eax]
lea edx, [esp + 0x2c4]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0xac]
mov eax, dword [ecx]
sub ecx, 4
mov dword [edx], eax
add edx, 4
lea eax, [esp + 0x2d0]
cmp edx, eax
jbe 0x43bfbc
sar dword [esp + 0xb0], 1
sub dword [esp + 0xac], 0x10
sub dword [esp + 0x84], 2
cmp dword [esp + 0x84], 0x461050
jae 0x43bbf4
cmp dword [esp + 0x24], 0xffffffe5
jl 0x43c060
cmp dword [esp + 0x24], 0xffffffff
jg 0x43c060
mov esi, 4
mov ecx, dword [esp + 0x24]
movsx eax, word [ecx*2 + 0x460e86]
mov dword [esp + 0x1c], eax
mov eax, ecx
shl eax, 4
lea ecx, [esp + 0x284]
lea edx, [eax + 0x460e5c]
mov eax, dword [edx]
sub edx, 4
mov dword [ecx], eax
add ecx, 4
lea eax, [esp + 0x290]
cmp ecx, eax
jbe 0x43c02f
cmp dword [esp + 0x290], 0
jne 0x43c9d0
sub eax, 4
dec esi
cmp dword [eax], 0
je 0x43c052
jmp 0x43c9d0
cmp dword [esp + 0x24], 0
jge 0x43c0d9
mov edx, dword [esp + 0x24]
neg edx
mov ecx, edx
sar ecx, 3
mov ax, word [ecx*2 + 0x460f88]
shr ax, 5
movzx ebp, ax
cmp ebp, edx
jge 0x43c086
inc ecx
mov ax, word [ecx*2 + 0x460f88]
xor edx, edx
mov dx, ax
mov ecx, dword [esp + 0x24]
shr ax, 5
and edx, 0x1f
movzx ebp, ax
movsx eax, word [edx*2 + 0x460f70]
shl edx, 4
add ecx, ebp
add edx, 0x460edc
lea esi, [esp + 0x344]
mov dword [esp + 0x30], eax
mov eax, dword [edx]
sub edx, 4
mov dword [esi], eax
add esi, 4
lea eax, [esp + 0x350]
cmp esi, eax
jbe 0x43c0bf
jmp 0x43c159
cmp dword [esp + 0x24], 0x37
jl 0x43c14d
mov ecx, dword [esp + 0x24]
sar ecx, 3
mov ax, word [ecx*2 + 0x461112]
shr ax, 5
movzx edx, ax
cmp edx, dword [esp + 0x24]
jg 0x43c0fd
inc ecx
mov ax, word [ecx*2 + 0x461110]
xor edx, edx
mov dx, ax
mov ecx, dword [esp + 0x24]
shr ax, 5
and edx, 0x1f
movzx ebp, ax
movsx eax, word [edx*2 + 0x4610f8]
shl edx, 4
sub ecx, ebp
add edx, 0x461064
lea esi, [esp + 0x344]
mov dword [esp + 0x30], eax
mov eax, dword [edx]
sub edx, 4
mov dword [esi], eax
add esi, 4
lea eax, [esp + 0x350]
cmp esi, eax
jbe 0x43c136
jmp 0x43c159
mov dword [esp + 0x3c], 0
mov ecx, dword [esp + 0x24]
cmp ecx, 0x37
jne 0x43c196
xor edx, edx
mov esi, 4
mov ecx, 0x461064
lea edi, [esp + 0x284]
movsx eax, word [0x4610f8]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx]
sub ecx, 4
mov dword [edi], eax
add edi, 4
lea eax, [esp + 0x290]
cmp edi, eax
jbe 0x43c17c
jmp 0x43c239
lea edx, [ecx - 0x1b]
test edx, edx
jle 0x43c1f2
mov ecx, 0x1b
lea esi, [edx*8 + 0x46087c]
mov dword [esp + 0x58], 2
movsx eax, word [edx*2 + 0x460a56]
lea edi, [esp + 0x544]
mov dword [esp + 0x168], eax
mov eax, dword [esi]
sub esi, 4
mov dword [edi], eax
add edi, 4
lea eax, [esp + 0x548]
cmp edi, eax
jbe 0x43c1c7
cmp dword [esp + 0x548], 0
jne 0x43c1f2
sub eax, 4
dec dword [esp + 0x58]
cmp dword [eax], 0
je 0x43c1e6
mov esi, 2
lea edi, [esp + 0x284]
movsx eax, word [ecx*2 + 0x460a56]
lea ecx, [ecx*8 + 0x46087c]
mov dword [esp + 0x1c], eax
mov eax, dword [ecx]
sub ecx, 4
mov dword [edi], eax
add edi, 4
lea eax, [esp + 0x288]
cmp edi, eax
jbe 0x43c211
cmp dword [esp + 0x288], 0
jne 0x43c239
sub eax, 4
dec esi
cmp dword [eax], 0
je 0x43c230
test edx, edx
jle 0x43c608
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + esi*4 + 0x280]
add eax, esi
mov edx, dword [esp + 0x58]
mov dword [esp + 0x80], eax
mov dword [esp + 0x198], ecx
dec eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + edx*4 + 0x540]
mov dword [esp + 0x194], eax
mov eax, dword [esp + 0x198]
mul dword [esp + 0x194]
mov dword [esp + 0x190], eax
mov dword [esp + 0x18c], edx
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x190]
shl eax, 2
mov ebp, dword [esp + 0x18c]
mov dword [esp + 0x54], eax
mov dword [esp + eax + 0x504], edx
mov edx, dword [esp + 0x58]
mov dword [esp + eax + 0x500], ebp
dec edx
je 0x43c377
mov ebp, eax
mov ecx, dword [esp + 0x54]
std
lea eax, [esp + edx*4 + 0x540]
lea edi, [esp + ecx + 0x640]
mov ecx, edx
mov dword [esp + 0xa8], eax
xor eax, eax
rep stosd dword es:[edi], eax
cld
mov eax, dword [esp + 0x7c]
sub eax, edx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + esi*4 + 0x280]
mov ecx, dword [esp + 0xa8]
mov dword [esp + 0x188], eax
mov edx, dword [ecx]
mov dword [esp + 0x184], edx
mov eax, dword [esp + 0x188]
mul dword [esp + 0x184]
mov dword [esp + 0x180], eax
mov dword [esp + 0x17c], edx
mov edx, dword [esp + 0x180]
lea ecx, [esp + ebp + 0x500]
mov eax, dword [ecx]
add eax, edx
mov dword [ecx], eax
cmp eax, edx
mov eax, 1
lea ecx, [esp + 0x540]
adc eax, 0xffffffff
sub ebp, 4
sub dword [esp + 0xa8], 4
add eax, dword [esp + 0x17c]
mov dword [esp + ebp + 0x500], eax
cmp dword [esp + 0xa8], ecx
jne 0x43c2f2
mov eax, dword [esp + 0x5c]
dec dword [esp + 0x5c]
mov dword [esp + eax*4 + 0x640], 0
js 0x43c3b4
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x5c]
shl edx, 2
inc ebp
xor eax, eax
mov ecx, ebp
std
lea edi, [esp + edx + 0x500]
rep stosd dword es:[edi], eax
lea edi, [esp + edx + 0x640]
mov ecx, ebp
cld
std
rep stosd dword es:[edi], eax
cld
dec esi
je 0x43c48f
mov ecx, dword [esp + 0x58]
lea edi, [esp + esi*4 + 0x280]
add esi, ecx
shl esi, 2
mov dword [esp + 0xd0], esi
test ecx, ecx
je 0x43c475
mov esi, dword [esp + 0xd0]
lea ebp, [esp + ecx*4 + 0x540]
mov eax, dword [edi]
mov edx, dword [ebp]
mov dword [esp + 0x178], eax
mov dword [esp + 0x174], edx
mov eax, dword [esp + 0x178]
mul dword [esp + 0x174]
mov dword [esp + 0x170], eax
mov dword [esp + 0x16c], edx
mov eax, dword [esp + 0x170]
mov edx, dword [esp + esi + 0x500]
add edx, eax
mov dword [esp + esi + 0x500], edx
cmp edx, eax
mov eax, 1
mov edx, dword [esp + esi + 0x4fc]
adc eax, 0xffffffff
add eax, dword [esp + 0x16c]
add edx, eax
mov dword [esp + esi + 0x4fc], edx
cmp edx, eax
mov eax, 1
adc eax, 0xffffffff
sub esi, 4
sub ebp, 4
add dword [esp + esi + 0x63c], eax
lea eax, [esp + 0x540]
cmp ebp, eax
jne 0x43c3e8
sub edi, 4
lea eax, [esp + 0x280]
sub dword [esp + 0xd0], 4
cmp edi, eax
jne 0x43c3d2
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0x168]
xor edx, edx
add dword [esp + 0x1c], eax
lea ecx, [esp + esi*4 + 0x280]
mov eax, dword [esp + esi*4 + 0x500]
cmp dword [esp + 0x7c], edx
mov dword [ecx], eax
je 0x43c4e3
mov edi, dword [esp + 0x54]
add edx, dword [esp + edi + 0x640]
mov eax, dword [esp + edi + 0x500]
add eax, edx
mov dword [esp + edi + 0x280], eax
cmp eax, edx
mov edx, 1
adc edx, 0xffffffff
sub edi, 4
jne 0x43c4bd
cmp dword [ecx], 0
jne 0x43c4f1
sub ecx, 4
dec esi
cmp dword [ecx], 0
je 0x43c4e8
cmp dword [esp + 0x284], 0
jle 0x43c528
shl dword [esp + 0x284], 1
dec dword [esp + 0x1c]
cmp esi, 2
jb 0x43c528
lea eax, [esp + 0x288]
lea ecx, [esi - 1]
mov edx, dword [eax]
add eax, 4
shr edx, 0x1f
or dword [eax - 8], edx
shl dword [eax - 4], 1
dec ecx
jne 0x43c516
cmp dword [esp + esi*4 + 0x280], 0
jne 0x43c533
dec esi
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
shr edx, 5
and eax, 0x1f
xor ecx, ecx
mov edi, 1
cmp ecx, eax
adc edi, 0xffffffff
add edx, edi
cmp esi, edx
jb 0x43c608
mov esi, edx
test edi, edi
je 0x43c56a
mov ebp, 1
mov cl, 0x1f
sub cl, al
shl ebp, cl
jmp 0x43c57b
cmp dword [esp + edx*4 + 0x284], 0
mov ebp, 1
jl 0x43c57b
xor ebp, ebp
test edx, edx
je 0x43c5f8
lea eax, [esp + edx*4 + 0x280]
mov ecx, dword [eax]
add ecx, ebp
mov dword [eax], ecx
cmp ebp, ecx
jbe 0x43c5d6
lea eax, [esp + edx*4 + 0x27c]
lea esi, [edx - 1]
mov dword [esp + 0x280], 0
cmp dword [eax], 0xffffffff
jne 0x43c5b3
sub eax, 4
dec esi
cmp dword [eax], 0xffffffff
je 0x43c5aa
test esi, esi
je 0x43c5c0
inc dword [esp + esi*4 + 0x280]
jmp 0x43c608
mov dword [esp + 0x284], 0x80000000
mov esi, 1
add dword [esp + 0x1c], esi
jmp 0x43c608
test edi, edi
je 0x43c5e8
lea edx, [ebp*2]
dec edx
not edx
and edx, ecx
mov dword [eax], edx
cmp dword [eax], 0
jne 0x43c608
sub eax, 4
dec esi
cmp dword [eax], 0
je 0x43c5ed
jmp 0x43c608
mov esi, ebp
add dword [esp + 0x1c], ebp
shl ebp, 0x1f
mov dword [esp + 0x284], ebp
cmp dword [esp + 0x3c], 0
je 0x43c9d0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + esi*4 + 0x280]
add eax, esi
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x78], eax
mov dword [esp + 0x164], ecx
dec eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + edx*4 + 0x340]
mov dword [esp + 0x160], eax
mov eax, dword [esp + 0x164]
mul dword [esp + 0x160]
mov dword [esp + 0x15c], eax
mov dword [esp + 0x158], edx
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x15c]
shl eax, 2
mov ebp, dword [esp + 0x158]
mov dword [esp + 0x4c], eax
mov dword [esp + eax + 0x4c4], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + eax + 0x4c0], ebp
dec edx
je 0x43c746
mov ebp, eax
mov ecx, dword [esp + 0x4c]
std
lea eax, [esp + edx*4 + 0x340]
lea edi, [esp + ecx + 0x600]
mov ecx, edx
mov dword [esp + 0xa4], eax
xor eax, eax
rep stosd dword es:[edi], eax
cld
mov eax, dword [esp + 0x74]
sub eax, edx
mov dword [esp + 0x50], eax
mov eax, dword [esp + esi*4 + 0x280]
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0x154], eax
mov edx, dword [ecx]
mov dword [esp + 0x150], edx
mov eax, dword [esp + 0x154]
mul dword [esp + 0x150]
mov dword [esp + 0x14c], eax
mov dword [esp + 0x148], edx
mov ecx, dword [esp + 0x14c]
lea edx, [esp + ebp + 0x4c0]
mov eax, dword [edx]
add eax, ecx
mov dword [edx], eax
cmp eax, ecx
mov eax, 1
lea ecx, [esp + 0x340]
adc eax, 0xffffffff
sub ebp, 4
sub dword [esp + 0xa4], 4
add eax, dword [esp + 0x148]
mov dword [esp + ebp + 0x4c0], eax
cmp dword [esp + 0xa4], ecx
jne 0x43c6c1
mov eax, dword [esp + 0x50]
dec dword [esp + 0x50]
mov dword [esp + eax*4 + 0x600], 0
js 0x43c783
mov edx, dword [esp + 0x50]
mov ebp, dword [esp + 0x50]
shl edx, 2
inc ebp
xor eax, eax
mov ecx, ebp
std
lea edi, [esp + edx + 0x4c0]
rep stosd dword es:[edi], eax
lea edi, [esp + edx + 0x600]
mov ecx, ebp
cld
std
rep stosd dword es:[edi], eax
cld
dec esi
je 0x43c85d
mov ecx, dword [esp + 0x3c]
lea edi, [esp + esi*4 + 0x280]
add esi, ecx
shl esi, 2
mov dword [esp + 0xcc], esi
test ecx, ecx
je 0x43c843
mov ebp, dword [esp + 0xcc]
lea esi, [esp + ecx*4 + 0x340]
mov eax, dword [edi]
mov edx, dword [esi]
mov dword [esp + 0x144], eax
mov dword [esp + 0x140], edx
mov eax, dword [esp + 0x144]
mul dword [esp + 0x140]
mov dword [esp + 0x13c], eax
mov dword [esp + 0x138], edx
mov eax, dword [esp + 0x13c]
mov edx, dword [esp + ebp + 0x4c0]
add edx, eax
mov dword [esp + ebp + 0x4c0], edx
cmp edx, eax
mov edx, 1
mov eax, dword [esp + ebp + 0x4bc]
adc edx, 0xffffffff
add edx, dword [esp + 0x138]
add eax, edx
mov dword [esp + ebp + 0x4bc], eax
cmp eax, edx
mov eax, 1
adc eax, 0xffffffff
sub ebp, 4
sub esi, 4
add dword [esp + ebp + 0x5fc], eax
lea eax, [esp + 0x340]
cmp esi, eax
jne 0x43c7b7
sub edi, 4
lea eax, [esp + 0x280]
sub dword [esp + 0xcc], 4
cmp edi, eax
jne 0x43c7a1
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0x30]
xor edi, edi
add dword [esp + 0x1c], eax
lea ecx, [esp + esi*4 + 0x280]
mov eax, dword [esp + esi*4 + 0x4c0]
cmp dword [esp + 0x74], edi
mov dword [ecx], eax
je 0x43c8ab
mov edx, dword [esp + 0x4c]
add edi, dword [esp + edx + 0x600]
mov eax, dword [esp + edx + 0x4c0]
add eax, edi
mov dword [esp + edx + 0x280], eax
cmp eax, edi
mov edi, 1
adc edi, 0xffffffff
sub edx, 4
jne 0x43c885
cmp dword [ecx], 0
jne 0x43c8b9
sub ecx, 4
dec esi
cmp dword [ecx], 0
je 0x43c8b0
cmp dword [esp + 0x284], 0
jle 0x43c8f0
shl dword [esp + 0x284], 1
dec dword [esp + 0x1c]
cmp esi, 2
jb 0x43c8f0
lea eax, [esp + 0x288]
lea ecx, [esi - 1]
mov edx, dword [eax]
add eax, 4
shr edx, 0x1f
or dword [eax - 8], edx
shl dword [eax - 4], 1
dec ecx
jne 0x43c8de
cmp dword [esp + esi*4 + 0x280], 0
jne 0x43c8fb
dec esi
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
shr edx, 5
and eax, 0x1f
xor ecx, ecx
mov edi, 1
cmp ecx, eax
adc edi, 0xffffffff
add edx, edi
cmp esi, edx
jb 0x43c9d0
mov esi, edx
test edi, edi
je 0x43c932
mov ebp, 1
mov cl, 0x1f
sub cl, al
shl ebp, cl
jmp 0x43c943
cmp dword [esp + edx*4 + 0x284], 0
mov ebp, 1
jl 0x43c943
xor ebp, ebp
test edx, edx
je 0x43c9c0
lea ecx, [esp + edx*4 + 0x280]
mov eax, dword [ecx]
add eax, ebp
mov dword [ecx], eax
cmp eax, ebp
jae 0x43c99e
lea eax, [esp + edx*4 + 0x27c]
lea esi, [edx - 1]
mov dword [esp + 0x280], 0
cmp dword [eax], 0xffffffff
jne 0x43c97b
sub eax, 4
dec esi
cmp dword [eax], 0xffffffff
je 0x43c972
test esi, esi
je 0x43c988
inc dword [esp + esi*4 + 0x280]
jmp 0x43c9d0
mov dword [esp + 0x284], 0x80000000
mov esi, 1
add dword [esp + 0x1c], esi
jmp 0x43c9d0
test edi, edi
je 0x43c9b0
lea edx, [ebp*2]
dec edx
not edx
and edx, eax
mov dword [ecx], edx
cmp dword [ecx], 0
jne 0x43c9d0
sub ecx, 4
dec esi
cmp dword [ecx], 0
je 0x43c9b5
jmp 0x43c9d0
mov esi, ebp
add dword [esp + 0x1c], ebp
shl ebp, 0x1f
mov dword [esp + 0x284], ebp
test ebx, ebx
je 0x43cd8c
lea eax, [ebx + esi]
mov ecx, dword [esp + esi*4 + 0x280]
mov edx, dword [esp + ebx*4 + 0x2c0]
mov dword [esp + 0x70], eax
dec eax
mov dword [esp + 0x134], ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x130], edx
mov eax, dword [esp + 0x134]
mul dword [esp + 0x130]
mov dword [esp + 0x12c], eax
mov dword [esp + 0x128], edx
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x12c]
shl eax, 2
mov ebp, dword [esp + 0x128]
mov dword [esp + 0x44], eax
mov dword [esp + eax + 0x484], edx
lea edx, [ebx - 1]
mov dword [esp + eax + 0x480], ebp
test edx, edx
je 0x43cb04
mov ebp, eax
mov ecx, dword [esp + 0x44]
std
lea eax, [esp + edx*4 + 0x2c0]
lea edi, [esp + ecx + 0x5c0]
mov ecx, edx
mov dword [esp + 0xa0], eax
xor eax, eax
rep stosd dword es:[edi], eax
cld
mov eax, dword [esp + 0x6c]
sub eax, edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + esi*4 + 0x280]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x124], eax
mov edx, dword [ecx]
mov dword [esp + 0x120], edx
mov eax, dword [esp + 0x124]
mul dword [esp + 0x120]
mov dword [esp + 0x11c], eax
mov dword [esp + 0x118], edx
mov ecx, dword [esp + 0x11c]
lea edx, [esp + ebp + 0x480]
mov eax, dword [edx]
add eax, ecx
mov dword [edx], eax
cmp eax, ecx
mov eax, 1
lea ecx, [esp + 0x2c0]
adc eax, 0xffffffff
sub ebp, 4
sub dword [esp + 0xa0], 4
add eax, dword [esp + 0x118]
mov dword [esp + ebp + 0x480], eax
cmp dword [esp + 0xa0], ecx
jne 0x43ca7f
mov eax, dword [esp + 0x48]
dec dword [esp + 0x48]
mov dword [esp + eax*4 + 0x5c0], 0
js 0x43cb41
mov edx, dword [esp + 0x48]
mov ebp, dword [esp + 0x48]
shl edx, 2
inc ebp
xor eax, eax
mov ecx, ebp
std
lea edi, [esp + edx + 0x480]
rep stosd dword es:[edi], eax
lea edi, [esp + edx + 0x5c0]
mov ecx, ebp
cld
std
rep stosd dword es:[edi], eax
cld
dec esi
je 0x43cc18
lea ecx, [esp + esi*4 + 0x280]
add esi, ebx
shl esi, 2
mov dword [esp + 0xc8], esi
test ebx, ebx
je 0x43cbfe
mov edi, dword [esp + 0xc8]
lea ebp, [esp + ebx*4 + 0x2c0]
mov esi, dword [ecx]
mov eax, dword [ebp]
mov dword [esp + 0x114], esi
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x114]
mul dword [esp + 0x110]
mov dword [esp + 0x10c], eax
mov dword [esp + 0x108], edx
mov edx, dword [esp + 0x10c]
mov eax, dword [esp + edi + 0x480]
add eax, edx
mov dword [esp + edi + 0x480], eax
cmp eax, edx
mov eax, 1
mov edx, dword [esp + edi + 0x47c]
adc eax, 0xffffffff
add eax, dword [esp + 0x108]
add edx, eax
mov dword [esp + edi + 0x47c], edx
cmp edx, eax
mov eax, 1
adc eax, 0xffffffff
sub edi, 4
sub ebp, 4
add dword [esp + edi + 0x5bc], eax
lea eax, [esp + 0x2c0]
cmp ebp, eax
jne 0x43cb73
sub ecx, 4
lea eax, [esp + 0x280]
sub dword [esp + 0xc8], 4
cmp ecx, eax
jne 0x43cb5b
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x2c]
xor ecx, ecx
add dword [esp + 0x1c], eax
lea edx, [esp + esi*4 + 0x280]
mov eax, dword [esp + esi*4 + 0x480]
cmp dword [esp + 0x6c], ecx
mov dword [edx], eax
je 0x43cc66
mov edi, dword [esp + 0x44]
add ecx, dword [esp + edi + 0x5c0]
mov eax, dword [esp + edi + 0x480]
add eax, ecx
mov dword [esp + edi + 0x280], eax
cmp eax, ecx
mov ecx, 1
adc ecx, 0xffffffff
sub edi, 4
jne 0x43cc40
cmp dword [edx], 0
jne 0x43cc74
sub edx, 4
dec esi
cmp dword [edx], 0
je 0x43cc6b
cmp dword [esp + 0x284], 0
jle 0x43ccab
shl dword [esp + 0x284], 1
dec dword [esp + 0x1c]
cmp esi, 2
jb 0x43ccab
lea eax, [esp + 0x288]
lea ecx, [esi - 1]
mov edx, dword [eax]
add eax, 4
shr edx, 0x1f
or dword [eax - 8], edx
shl dword [eax - 4], 1
dec ecx
jne 0x43cc99
cmp dword [esp + esi*4 + 0x280], 0
jne 0x43ccb6
dec esi
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x28]
shr eax, 5
and edx, 0x1f
xor ecx, ecx
mov ebx, 1
cmp ecx, edx
adc ebx, 0xffffffff
lea edi, [eax + ebx]
cmp esi, edi
jb 0x43cd8c
mov esi, edi
test ebx, ebx
je 0x43ccee
mov ebp, 1
mov cl, 0x1f
sub cl, dl
shl ebp, cl
jmp 0x43ccff
cmp dword [esp + edi*4 + 0x284], 0
mov ebp, 1
jl 0x43ccff
xor ebp, ebp
test edi, edi
je 0x43cd7c
lea ecx, [esp + edi*4 + 0x280]
mov edx, dword [ecx]
add edx, ebp
mov dword [ecx], edx
cmp ebp, edx
jbe 0x43cd5a
lea eax, [esp + edi*4 + 0x27c]
lea esi, [edi - 1]
mov dword [esp + 0x280], 0
cmp dword [eax], 0xffffffff
jne 0x43cd37
sub eax, 4
dec esi
cmp dword [eax], 0xffffffff
je 0x43cd2e
test esi, esi
je 0x43cd44
inc dword [esp + esi*4 + 0x280]
jmp 0x43cd8c
mov dword [esp + 0x284], 0x80000000
mov esi, 1
add dword [esp + 0x1c], esi
jmp 0x43cd8c
test ebx, ebx
je 0x43cd6c
lea eax, [ebp*2]
dec eax
not eax
and eax, edx
mov dword [ecx], eax
cmp dword [ecx], 0
jne 0x43cd8c
sub ecx, 4
dec esi
cmp dword [ecx], 0
je 0x43cd71
jmp 0x43cd8c
mov esi, ebp
add dword [esp + 0x1c], ebp
shl ebp, 0x1f
mov dword [esp + 0x284], ebp
lea eax, [esp + esi*4 + 0x280]
mov ecx, 1
cmp dword [esp + 0x34], 0
jg 0x43cda1
xor ecx, ecx
add ecx, dword [eax]
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
add eax, esi
mov edx, dword [esp + 0x14]
mov dword [esp + 0x68], eax
dec eax
mov ebx, dword [esp + edx*4 + 0x300]
mov dword [esp + 0x64], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0xc4], ebx
mov dword [esp + 0x104], ebx
mov dword [esp + 0x100], ecx
mov eax, dword [esp + 0x104]
mul dword [esp + 0x100]
mov dword [esp + 0xfc], eax
mov dword [esp + 0xf8], edx
mov ebx, dword [esp + 0x64]
mov ecx, dword [esp + 0xfc]
shl ebx, 2
mov eax, dword [esp + 0xf8]
lea edx, [esi - 1]
mov dword [esp + ebx + 0x444], ecx
mov dword [esp + ebx + 0x440], eax
test edx, edx
je 0x43ced0
mov ebp, ebx
lea eax, [esp + edx*4 + 0x280]
lea edi, [esp + ebx + 0x580]
mov ecx, edx
std
mov dword [esp + 0x9c], eax
xor eax, eax
rep stosd dword es:[edi], eax
cld
mov eax, dword [esp + 0x64]
sub eax, edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0xf4], eax
mov edx, dword [ecx]
mov dword [esp + 0xf0], edx
mov eax, dword [esp + 0xf4]
mul dword [esp + 0xf0]
mov dword [esp + 0xec], eax
mov dword [esp + 0xe8], edx
mov edx, dword [esp + 0xec]
lea ecx, [esp + ebp + 0x440]
mov eax, dword [ecx]
add eax, edx
mov dword [ecx], eax
cmp eax, edx
mov eax, 1
lea ecx, [esp + 0x280]
adc eax, 0xffffffff
sub ebp, 4
sub dword [esp + 0x9c], 4
add eax, dword [esp + 0xe8]
mov dword [esp + ebp + 0x440], eax
cmp dword [esp + 0x9c], ecx
jne 0x43ce4b
mov eax, dword [esp + 0x40]
dec dword [esp + 0x40]
mov dword [esp + eax*4 + 0x580], 0
js 0x43cf0d
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x40]
shl edx, 2
inc ebp
xor eax, eax
mov ecx, ebp
std
lea edi, [esp + edx + 0x440]
rep stosd dword es:[edi], eax
lea edi, [esp + edx + 0x580]
mov ecx, ebp
cld
std
rep stosd dword es:[edi], eax
cld
mov eax, dword [esp + 0x14]
dec eax
je 0x43cfe7
lea ecx, [esp + eax*4 + 0x300]
add eax, esi
shl eax, 2
mov dword [esp + 0xc0], eax
test esi, esi
je 0x43cfcd
mov ebp, dword [esp + 0xc0]
lea edi, [esp + esi*4 + 0x280]
mov eax, dword [ecx]
mov edx, dword [edi]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe0], edx
mov eax, dword [esp + 0xe4]
mul dword [esp + 0xe0]
mov dword [esp + 0xdc], eax
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0xdc]
mov eax, dword [esp + ebp + 0x440]
add eax, edx
mov dword [esp + ebp + 0x440], eax
cmp eax, edx
mov edx, 1
mov eax, dword [esp + ebp + 0x43c]
adc edx, 0xffffffff
add edx, dword [esp + 0xd8]
add eax, edx
mov dword [esp + ebp + 0x43c], eax
cmp eax, edx
mov eax, 1
adc eax, 0xffffffff
sub ebp, 4
sub edi, 4
add dword [esp + ebp + 0x57c], eax
lea eax, [esp + 0x280]
cmp edi, eax
jne 0x43cf41
sub ecx, 4
lea eax, [esp + 0x300]
sub dword [esp + 0xc0], 4
cmp ecx, eax
jne 0x43cf2b
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
add dword [esp + 0x20], ecx
lea edx, [esp + eax*4 + 0x300]
mov ecx, dword [esp + eax*4 + 0x440]
mov dword [edx], ecx
xor ecx, ecx
cmp dword [esp + 0x64], ecx
je 0x43d035
add ecx, dword [esp + ebx + 0x580]
mov eax, dword [esp + ebx + 0x440]
add eax, ecx
mov dword [esp + ebx + 0x300], eax
cmp eax, ecx
mov ecx, 1
adc ecx, 0xffffffff
sub ebx, 4
jne 0x43d00f
cmp dword [edx], 0
jne 0x43d046
sub edx, 4
dec dword [esp + 0x14]
cmp dword [edx], 0
je 0x43d03a
cmp dword [esp + 0x304], 0
jle 0x43d081
shl dword [esp + 0x304], 1
dec dword [esp + 0x20]
cmp dword [esp + 0x14], 2
jb 0x43d081
lea eax, [esp + 0x308]
mov ecx, dword [esp + 0x14]
dec ecx
mov edx, dword [eax]
add eax, 4
shr edx, 0x1f
or dword [eax - 8], edx
shl dword [eax - 4], 1
dec ecx
jne 0x43d06f
mov ecx, dword [esp + 0x14]
cmp dword [esp + ecx*4 + 0x300], 0
jne 0x43d093
dec dword [esp + 0x14]
cmp dword [esp + 0x20], 0
jle 0x43d0a8
mov edx, 1
sub edx, dword [esp + 0x10]
jmp 0x43ae6b
mov edx, dword [esp + 0x20]
neg edx
test edx, edx
je 0x43d106
mov ecx, dword [esp + 0x14]
mov bl, 0x20
sub bl, dl
lea esi, [esp + ecx*4 + 0x304]
lea eax, [esp + ecx*4 + 0x300]
mov cl, bl
mov edi, dword [eax]
shl edi, cl
mov cl, dl
mov dword [esi], edi
shr dword [eax], cl
mov eax, dword [esp + 0x14]
dec eax
je 0x43d0fd
lea edi, [esp + eax*4 + 0x300]
mov eax, dword [edi]
mov cl, bl
shl eax, cl
or dword [edi + 4], eax
mov cl, dl
shr dword [edi], cl
sub edi, 4
lea ecx, [esp + 0x300]
cmp edi, ecx
jne 0x43d0e2
cmp dword [esi], 0
je 0x43d106
inc dword [esp + 0x14]
mov ecx, dword [esp + 0x758]
cmp dword [esp + 0x34], 0
lea edx, [ecx + 1]
mov byte [ecx], 0x30
mov eax, edx
jle 0x43d218
mov ecx, dword [esp + 0x10]
neg ecx
mov dword [esp + 0x38], ecx
sub ecx, dword [esp + 0x18]
mov dword [esp + 0x94], ecx
test ecx, ecx
jle 0x43d141
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
cmp dword [esp + 0x38], 0
je 0x43d1ed
mov dword [esp + 0x300], 0
cmp dword [esp + 0x14], 0
je 0x43d1d5
mov ecx, dword [esp + 0x14]
test ecx, ecx
lea ebx, [esp + ecx*4 + 0x300]
mov dword [esp + 0x98], ebx
mov esi, dword [ebx]
mov dword [ebx], 0
je 0x43d1c5
mov edi, ebx
lea ebp, [esi + esi*4]
mov ebx, 1
mov ecx, ebp
cmp ebp, esi
adc ebx, 0xffffffff
and esi, 0xdfffffff
shr esi, 0x1d
add ebp, ebp
shr ecx, 0x1f
lea ebx, [esi + ebx*2]
or ebx, ecx
mov esi, dword [edi - 4]
mov ecx, dword [edi]
add ecx, ebp
mov dword [edi], ecx
cmp ecx, ebp
mov ecx, 1
adc ecx, 0xffffffff
sub edi, 4
add ecx, ebx
lea ebx, [esp + 0x300]
mov dword [edi], ecx
cmp edi, ebx
jne 0x43d17e
mov ecx, dword [esp + 0x98]
cmp dword [ecx], 0
jne 0x43d1d5
dec dword [esp + 0x14]
mov ecx, dword [esp + 0x300]
inc edx
add cl, 0x30
dec dword [esp + 0x38]
mov byte [edx - 1], cl
jne 0x43d14c
cmp dword [esp + 0x94], 0
jg 0x43d3b7
cmp dword [esp + 0x304], 0
jge 0x43d218
lea ecx, [edx - 1]
cmp byte [ecx], 0x39
jne 0x43d216
mov byte [ecx], 0x30
dec ecx
cmp byte [ecx], 0x39
je 0x43d20d
inc byte [ecx]
cmp dword [esp + 0x60], 0
jle 0x43d487
cmp dword [esp + 0x34], 0
jle 0x43d2d6
mov ecx, dword [esp + 0x25c]
mov ebx, dword [esp + 0x258]
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x274], ecx
mov dword [esp + 0x270], ebx
lea ebx, [ebp + 0xb]
xor ebp, ebp
cmp ebx, 0x20
jl 0x43d264
mov ecx, ebx
shr ecx, 5
mov ebp, ecx
shl ecx, 5
sub ebx, ecx
mov ecx, 2
sub ecx, ebp
mov dword [esp + 0x14], ecx
cmp ecx, 1
jb 0x43d2c4
shl ebp, 2
lea esi, [esp + 0x300]
lea edi, [esp + 0x274]
mov dword [esp + 0xd4], ecx
sub edi, ebp
mov ebp, dword [edi]
test ebx, ebx
je 0x43d2af
mov cl, 0x20
mov dword [esp + 0xbc], ebp
sub cl, bl
shr dword [esp + 0xbc], cl
mov ecx, dword [esp + 0xbc]
or dword [esi], ecx
add esi, 4
mov cl, bl
shl ebp, cl
sub edi, 4
mov dword [esi], ebp
dec dword [esp + 0xd4]
jne 0x43d28e
mov ecx, dword [esp + 0x14]
cmp dword [esp + ecx*4 + 0x300], 0
jne 0x43d2d6
dec dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
sub ecx, edx
add ecx, eax
mov dword [esp + 0x38], ecx
test ecx, ecx
jle 0x43d38b
mov dword [esp + 0x300], 0
cmp dword [esp + 0x14], 0
je 0x43d373
mov ecx, dword [esp + 0x14]
test ecx, ecx
lea ebx, [esp + ecx*4 + 0x300]
mov dword [esp + 0x90], ebx
mov esi, dword [ebx]
mov dword [ebx], 0
je 0x43d363
mov edi, ebx
lea ebp, [esi + esi*4]
mov ebx, 1
mov ecx, ebp
cmp ebp, esi
adc ebx, 0xffffffff
and esi, 0xdfffffff
shr esi, 0x1d
add ebp, ebp
shr ecx, 0x1f
lea ebx, [esi + ebx*2]
or ebx, ecx
mov esi, dword [edi - 4]
mov ecx, dword [edi]
add ecx, ebp
mov dword [edi], ecx
cmp ecx, ebp
mov ecx, 1
adc ecx, 0xffffffff
sub edi, 4
add ecx, ebx
lea ebx, [esp + 0x300]
mov dword [edi], ecx
cmp edi, ebx
jne 0x43d31c
mov ecx, dword [esp + 0x90]
cmp dword [ecx], 0
jne 0x43d373
dec dword [esp + 0x14]
mov ecx, dword [esp + 0x300]
inc edx
add cl, 0x30
dec dword [esp + 0x38]
mov byte [edx - 1], cl
jne 0x43d2ea
test byte [esp + 0x756], 0x40
jne 0x43d487
cmp dword [esp + 0x304], 0
jl 0x43d43f
cmp dword [esp + 0x18], 0
je 0x43d543
jmp 0x43d487
test byte [esp + 0x756], 0x40
jne 0x43d487
cmp dword [esp + 0x304], 0
mov ecx, 1
jl 0x43d3d6
xor ecx, ecx
test ecx, ecx
jne 0x43d400
cmp dword [esp + 0x94], 1
jne 0x43d3f8
add dword [esp + 0x304], 0x10000
mov ecx, 1
js 0x43d3f8
xor ecx, ecx
test ecx, ecx
je 0x43d487
cmp byte [edx - 1], 0x39
jne 0x43d411
mov ecx, 0x39
dec edx
cmp byte [edx - 1], cl
je 0x43d40b
inc byte [edx - 1]
cmp edx, eax
jne 0x43d487
dec eax
mov esi, dword [esp + 0x764]
inc dword [esi]
cmp dword [esp + 0x8c], 0
je 0x43d487
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x74c], ecx
jge 0x43d487
jmp 0x43d47c
cmp byte [edx - 1], 0x39
jne 0x43d450
mov ecx, 0x39
dec edx
cmp byte [edx - 1], cl
je 0x43d44a
inc byte [edx - 1]
cmp edx, eax
jne 0x43d487
dec eax
mov esi, dword [esp + 0x764]
inc dword [esi]
cmp dword [esp + 0x8c], 0
je 0x43d487
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x74c], ecx
jge 0x43d487
mov ecx, dword [esp + 0x74c]
mov dword [esp + 0x18], ecx
test byte [esp + 0x754], 0x80
jne 0x43d4b3
mov ecx, dword [esp + 0x18]
sub ecx, edx
lea esi, [ecx + eax]
mov ebx, esi
dec esi
test ebx, ebx
jle 0x43d4c4
mov byte [edx], 0x30
inc edx
mov ecx, esi
dec esi
test ecx, ecx
jg 0x43d4a1
xor edi, edi
jmp 0x43d5ee
cmp byte [edx - 1], 0x30
jne 0x43d4c4
mov ecx, 0x30
dec edx
cmp byte [edx - 1], cl
je 0x43d4be
xor edi, edi
jmp 0x43d5ee
test esi, esi
je 0x43d531
mov ecx, dword [esp + 0x768]
cmp eax, 1
sbb eax, eax
mov edx, dword [esp + 0x758]
and eax, 8
sub eax, 4
mov dword [ecx], eax
mov eax, 0x473b4c
cmp byte [0x473b4c], 0
je 0x43d503
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
cmp byte [eax], 0
jne 0x43d4f8
mov eax, dword [esp + 0x758]
mov ecx, edx
sub ecx, eax
mov esi, dword [esp + 0x764]
xor edi, edi
mov dword [esi], ecx
test byte [esp + 0x757], 0x40
je 0x43d5ee
mov edi, 0xc
jmp 0x43d5ee
mov ecx, dword [esp + 0x768]
cmp eax, 1
sbb eax, eax
and eax, 2
dec eax
mov dword [ecx], eax
test byte [esp + 0x754], 0x80
je 0x43d557
mov dword [esp + 0x18], 1
jmp 0x43d58a
test byte [esp + 0x754], 2
je 0x43d58a
mov eax, dword [esp + 0x750]
inc eax
mov dword [esp + 0x18], eax
cmp dword [esp + 0x74c], eax
jge 0x43d583
mov ecx, dword [esp + 0x74c]
mov dword [esp + 0x18], ecx
jmp 0x43d58a
cmp dword [esp + 0x18], 1
jl 0x43d5cf
mov eax, dword [esp + 0x758]
mov ecx, dword [esp + 0x18]
mov edx, eax
dec dword [esp + 0x18]
test ecx, ecx
je 0x43d5af
mov byte [edx], 0x30
inc edx
mov ecx, dword [esp + 0x18]
dec dword [esp + 0x18]
test ecx, ecx
jne 0x43d59f
mov esi, dword [esp + 0x764]
xor edi, edi
test byte [esp + 0x757], 0x40
mov dword [esi], 1
je 0x43d5ee
mov edi, 0xb
jmp 0x43d5ee
mov eax, dword [esp + 0x758]
mov esi, dword [esp + 0x764]
mov edi, 6
lea edx, [eax + 1]
mov byte [eax], 0x30
mov dword [esi], 1
mov ecx, dword [esp + 0x75c]
mov byte [edx], 0
test ecx, ecx
je 0x43d607
mov esi, eax
sub esi, dword [esp + 0x758]
mov dword [ecx], esi
mov ecx, dword [esp + 0x760]
test ecx, ecx
je 0x43d61b
sub edx, dword [esp + 0x758]
mov dword [ecx], edx
mov ecx, dword [esp + 0x76c]
test ecx, ecx
je 0x43d628
mov dword [ecx], edi
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x730
ret