Function at 0x4438d0
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 0x44630f
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 0x443935
fld qword [esp + 0x744]
fchs
fstp qword [esp + 0x744]
test esi, esi
je 0x443a0e
cmp esi, 0x7ff00000
je 0x443a0e
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 0x443a00
test eax, eax
jle 0x443a00
fld qword [esp + 0x744]
fadd qword [0x472ee0]
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 [0x472ee0]
fcom qword [esp + 0x258]
fstp qword [esp + 0x744]
fnstsw ax
test ah, 0x41
jne 0x4439e3
fld1
fsubr qword [esp + 0x744]
fstp qword [esp + 0x744]
fld qword [esp + 0x744]
fcomp qword [esp + 0x258]
fnstsw ax
test ah, 0x40
je 0x443a00
mov dword [esp + 0x60], 0
shr edx, 4
sub edx, 0x3ff0000
jmp 0x443b5e
mov ecx, esi
xor ecx, edx
or ecx, dword [esp + 0x268]
je 0x44620b
test esi, esi
je 0x443a7e
mov ecx, dword [esp + 0x768]
mov eax, 0x492498
mov edx, dword [esp + 0x758]
mov dword [ecx], 0
cmp byte [0x492498], 0
je 0x443a50
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
cmp byte [eax], 0
jne 0x443a45
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 0x44632e
mov edi, 0xa
jmp 0x44632e
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 0x446283
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 0x443ae9
mov esi, dword [esp + 0x254]
mov eax, ecx
shr eax, 0x15
or esi, 0xfff00000
shl esi, 0xb
or esi, eax
jmp 0x443b39
cmp dword [esp + 0x254], 0
je 0x443b20
mov esi, dword [esp + 0x254]
xor ebx, ebx
shl esi, 0xc
test esi, esi
jle 0x443b0a
add esi, esi
inc ebx
test esi, esi
jg 0x443b03
sub edx, ebx
mov eax, dword [esp + 0x250]
mov cl, 0x20
add ebx, 0xc
sub cl, bl
shr eax, cl
or esi, eax
jmp 0x443b39
mov esi, dword [esp + 0x250]
xor eax, eax
cmp esi, eax
jle 0x443b34
add esi, esi
inc eax
test esi, esi
jg 0x443b2d
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 0x443b6c
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 0x443c0a
cmp dword [esp + 0x750], 0
jl 0x44630f
mov eax, dword [esp + 0x750]
add eax, edx
mov dword [esp + 0x18], eax
cmp dword [esp + 0x74c], eax
jge 0x443bef
mov ecx, dword [esp + 0x74c]
mov dword [esp + 0x18], ecx
jmp 0x443c0a
cmp dword [esp + 0x18], 0
jl 0x446283
jne 0x443c0a
test byte [esp + 0x756], 0x40
jne 0x446283
neg edx
mov dword [esp + 0x10], edx
test edx, edx
jne 0x443cea
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 0x443c62
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 0x443cc3
cmp dword [esp + 0x244], 0
je 0x443ca6
mov edx, dword [esp + 0x244]
xor ebx, ebx
shl edx, 0xc
test edx, edx
jle 0x443c83
add edx, edx
inc ebx
test edx, edx
jg 0x443c7c
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 0x443cc3
mov edx, dword [esp + 0x240]
xor esi, esi
xor eax, eax
cmp edx, esi
jle 0x443cbc
add edx, edx
inc eax
test edx, edx
jg 0x443cb5
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 0x445dd3
cmp dword [esp + 0x18], 0xf
jl 0x443d0b
cmp dword [esp + 0x34], 0
jle 0x443ef1
mov eax, dword [esp + 0x10]
add eax, 0xf
test eax, eax
jle 0x443ef1
cmp dword [esp + 0x10], 0xfffffece
jl 0x443ef1
cmp dword [esp + 0x10], 0x132
jg 0x443ef1
cmp dword [esp + 0x10], 0xffffffd1
jge 0x443d88
mov ecx, dword [esp + 0x10]
neg ecx
mov edx, ecx
sar edx, 3
mov ax, word [edx*2 + 0x473fb8]
shr ax, 5
movzx ebx, ax
cmp ebx, ecx
jge 0x443d4d
inc edx
mov cx, word [edx*2 + 0x473fb8]
mov edi, dword [esp + 0x10]
mov ax, cx
shr ax, 2
movzx eax, ax
and eax, 0xfffffff8
fld qword [eax + edi*8 + 0x473db0]
xor eax, eax
mov ax, cx
and eax, 0x1f
fmul qword [eax*8 + 0x473f30]
fstp qword [esp + 0x260]
jmp 0x443e08
cmp dword [esp + 0x10], 0x2f
jle 0x443de8
mov ecx, dword [esp + 0x10]
sar ecx, 3
mov ax, word [ecx*2 + 0x47408a]
shr ax, 5
movzx edx, ax
cmp edx, dword [esp + 0x10]
jg 0x443dac
inc ecx
mov dx, word [ecx*2 + 0x474088]
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 + 0x473db0]
mov ax, dx
and eax, 0x1f
fmul qword [eax*8 + 0x474010]
fstp qword [esp + 0x260]
jmp 0x443e08
mov edi, dword [esp + 0x10]
mov eax, dword [edi*8 + 0x473db4]
mov ecx, dword [edi*8 + 0x473db0]
mov dword [esp + 0x264], eax
mov dword [esp + 0x260], ecx
fld qword [0x473bb8]
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 0x443e69
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 0x443eca
cmp dword [esp + 0x24c], 0
je 0x443ead
mov edx, dword [esp + 0x24c]
xor ebx, ebx
shl edx, 0xc
test edx, edx
jle 0x443e8a
add edx, edx
inc ebx
test edx, edx
jg 0x443e83
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 0x443eca
mov edx, dword [esp + 0x248]
xor esi, esi
xor eax, eax
cmp edx, esi
jle 0x443ec3
add edx, edx
inc eax
test edx, edx
jg 0x443ebc
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 0x445dd3
cmp dword [esp + 0x10], 0xfffffeaa
jl 0x443f1c
cmp dword [esp + 0x10], 0x159
jg 0x443f1c
cmp dword [esp + 0x18], 0x11
mov eax, pe_nt_image_headers32
jg 0x443f16
mov eax, 0x40
mov dword [esp + 0x28], eax
jmp 0x443f24
mov dword [esp + 0x28], pe_nt_image_headers32
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 0x443f6e
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 0x443fcf
cmp dword [esp + 0x23c], 0
je 0x443fb2
mov edx, dword [esp + 0x23c]
xor ebx, ebx
shl edx, 0xc
test edx, edx
jle 0x443f8f
add edx, edx
inc ebx
test edx, edx
jg 0x443f88
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 0x443fcf
mov edx, dword [esp + 0x238]
xor esi, esi
xor eax, eax
cmp edx, esi
jle 0x443fc8
add edx, edx
inc eax
test edx, edx
jg 0x443fc1
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 0x4444bf
mov esi, 2
cmp ecx, 0xffffffd1
jl 0x44405e
cmp ecx, 0x2f
jg 0x44405e
movsx eax, word [ecx*2 + 0x473406]
lea ecx, [ecx*8 + 0x47322c]
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 0x44402d
cmp dword [esp + 0x288], 0
jne 0x445acc
sub eax, 4
dec esi
cmp dword [eax], 0
je 0x444050
jmp 0x445acc
cmp dword [esp + 0x10], 0
mov ecx, dword [esp + 0x10]
jge 0x4440d2
neg ecx
mov edx, ecx
sar edx, 3
mov ax, word [edx*2 + 0x473500]
shr ax, 5
movzx ebx, ax
cmp ebx, ecx
jge 0x444084
inc edx
mov ax, word [edx*2 + 0x473500]
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 + 0x4734e0]
add ecx, ebx
lea edx, [edx*8 + 0x47346c]
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 0x4440bb
jmp 0x444137
sar ecx, 3
mov ax, word [ecx*2 + 0x4735f2]
shr ax, 5
movzx edx, ax
cmp edx, dword [esp + 0x10]
jg 0x4440eb
inc ecx
mov ax, word [ecx*2 + 0x4735f0]
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 + 0x4735d0]
sub ecx, ebx
lea edx, [edx*8 + 0x47356c]
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 0x444122
movsx eax, word [ecx*2 + 0x473406]
lea ecx, [ecx*8 + 0x47322c]
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 0x444151
cmp dword [esp + 0x288], 0
jne 0x444179
sub eax, 4
dec esi
cmp dword [eax], 0
je 0x444170
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 0x4441ea
mov dword [esp + ebx*4 + 0x700], 0
dec ebx
js 0x444289
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 0x444347
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 0x4442ab
sub ebx, 4
sub edi, 4
cmp edi, 8
jne 0x4442a2
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 0x444398
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 0x444372
cmp dword [edx], 0
jne 0x4443a6
sub edx, 4
dec esi
cmp dword [edx], 0
je 0x44439d
cmp dword [esp + 0x284], 0
jle 0x4443dd
shl dword [esp + 0x284], 1
dec dword [esp + 0x1c]
cmp esi, 2
jb 0x4443dd
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 0x4443cb
cmp dword [esp + esi*4 + 0x280], 0
jne 0x4443e8
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 0x445acc
mov esi, edi
test ebx, ebx
je 0x444420
mov ebp, 1
mov cl, 0x1f
sub cl, dl
shl ebp, cl
jmp 0x444431
cmp dword [esp + edi*4 + 0x284], 0
mov ebp, 1
jl 0x444431
xor ebp, ebp
test edi, edi
je 0x445abc
lea ecx, [esp + edi*4 + 0x280]
mov edx, dword [ecx]
add edx, ebp
mov dword [ecx], edx
cmp ebp, edx
jbe 0x444496
lea eax, [esp + edi*4 + 0x27c]
lea esi, [edi - 1]
mov dword [esp + 0x280], 0
cmp dword [eax], 0xffffffff
jne 0x44446d
sub eax, 4
dec esi
cmp dword [eax], 0xffffffff
je 0x444464
test esi, esi
je 0x44447d
inc dword [esp + esi*4 + 0x280]
jmp 0x445acc
mov dword [esp + 0x284], 0x80000000
mov esi, 1
add dword [esp + 0x1c], esi
jmp 0x445acc
test ebx, ebx
je 0x4444a8
lea eax, [ebp*2]
dec eax
not eax
and eax, edx
mov dword [ecx], eax
cmp dword [ecx], 0
jne 0x445acc
sub ecx, 4
dec esi
cmp dword [ecx], 0
je 0x4444b1
jmp 0x445acc
mov dword [esp + 0x3c], 4
xor ebx, ebx
cmp dword [esp + 0x10], 0xfffffdea
jge 0x444905
mov dword [esp + 0xb8], 0x1000
mov dword [esp + 0xb4], 0x473874
mov dword [esp + 0x88], 0x47387e
mov eax, dword [esp + 0xb8]
neg eax
cmp eax, dword [esp + 0x24]
jl 0x4448d7
mov ecx, dword [esp + 0xb8]
add dword [esp + 0x24], ecx
test ebx, ebx
je 0x4448a1
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 0x44453a
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 0x4445c8
mov dword [esp + esi*4 + 0x6c0], 0
dec esi
js 0x444667
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 0x444725
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 0x444689
sub edi, 4
sub esi, 4
cmp esi, 0x10
jne 0x444680
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 0x444776
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 0x444750
cmp dword [edx], 0
jne 0x444784
sub edx, 4
dec ebx
cmp dword [edx], 0
je 0x44477b
cmp dword [esp + 0x2c4], 0
jle 0x4447bb
shl dword [esp + 0x2c4], 1
dec dword [esp + 0x2c]
cmp ebx, 2
jb 0x4447bb
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 0x4447a9
cmp dword [esp + ebx*4 + 0x2c0], 0
jne 0x4447c6
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 0x4448d7
mov ebx, esi
test edi, edi
je 0x4447fe
mov ebp, 1
mov cl, 0x1f
sub cl, dl
shl ebp, cl
jmp 0x44480f
cmp dword [esp + esi*4 + 0x2c4], 0
mov ebp, 1
jl 0x44480f
xor ebp, ebp
test esi, esi
je 0x44488f
lea ecx, [esp + esi*4 + 0x2c0]
mov edx, dword [ecx]
add edx, ebp
mov dword [ecx], edx
cmp ebp, edx
jbe 0x44486d
lea eax, [esp + esi*4 + 0x2bc]
lea ebx, [esi - 1]
mov dword [esp + 0x2c0], 0
cmp dword [eax], 0xffffffff
jne 0x444847
sub eax, 4
dec ebx
cmp dword [eax], 0xffffffff
je 0x44483e
test ebx, ebx
je 0x444857
inc dword [esp + ebx*4 + 0x2c0]
jmp 0x4448d7
mov dword [esp + 0x2c4], 0x80000000
mov ebx, 1
add dword [esp + 0x2c], ebx
jmp 0x4448d7
test edi, edi
je 0x44487f
lea eax, [ebp*2]
dec eax
not eax
and eax, edx
mov dword [ecx], eax
cmp dword [ecx], 0
jne 0x4448d7
sub ecx, 4
dec ebx
cmp dword [ecx], 0
je 0x444884
jmp 0x4448d7
mov ebx, ebp
add dword [esp + 0x2c], ebp
shl ebp, 0x1f
mov dword [esp + 0x2c4], ebp
jmp 0x4448d7
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 0x4448c2
sar dword [esp + 0xb8], 1
sub dword [esp + 0xb4], 0x10
sub dword [esp + 0x88], 2
cmp dword [esp + 0x88], 0x473878
jae 0x4444f8
jmp 0x444d3a
cmp dword [esp + 0x10], 0x216
jle 0x444d3a
mov dword [esp + 0xb0], 0x1000
mov dword [esp + 0xac], 0x4739fc
mov dword [esp + 0x84], 0x473a06
mov ecx, dword [esp + 0x24]
cmp ecx, dword [esp + 0xb0]
jl 0x444d11
mov ecx, dword [esp + 0xb0]
sub dword [esp + 0x24], ecx
test ebx, ebx
je 0x444cdb
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 0x444974
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 0x444a02
mov dword [esp + esi*4 + 0x680], 0
dec esi
js 0x444aa1
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 0x444b5f
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 0x444ac3
sub edi, 4
sub esi, 4
cmp esi, 0x10
jne 0x444aba
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 0x444bb0
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 0x444b8a
cmp dword [edx], 0
jne 0x444bbe
sub edx, 4
dec ebx
cmp dword [edx], 0
je 0x444bb5
cmp dword [esp + 0x2c4], 0
jle 0x444bf5
shl dword [esp + 0x2c4], 1
dec dword [esp + 0x2c]
cmp ebx, 2
jb 0x444bf5
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 0x444be3
cmp dword [esp + ebx*4 + 0x2c0], 0
jne 0x444c00
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 0x444d11
mov ebx, esi
test edi, edi
je 0x444c38
mov ebp, 1
mov cl, 0x1f
sub cl, dl
shl ebp, cl
jmp 0x444c49
cmp dword [esp + esi*4 + 0x2c4], 0
mov ebp, 1
jl 0x444c49
xor ebp, ebp
test esi, esi
je 0x444cc9
lea ecx, [esp + esi*4 + 0x2c0]
mov edx, dword [ecx]
add edx, ebp
mov dword [ecx], edx
cmp ebp, edx
jbe 0x444ca7
lea eax, [esp + esi*4 + 0x2bc]
lea ebx, [esi - 1]
mov dword [esp + 0x2c0], 0
cmp dword [eax], 0xffffffff
jne 0x444c81
sub eax, 4
dec ebx
cmp dword [eax], 0xffffffff
je 0x444c78
test ebx, ebx
je 0x444c91
inc dword [esp + ebx*4 + 0x2c0]
jmp 0x444d11
mov dword [esp + 0x2c4], 0x80000000
mov ebx, 1
add dword [esp + 0x2c], ebx
jmp 0x444d11
test edi, edi
je 0x444cb9
lea eax, [ebp*2]
dec eax
not eax
and eax, edx
mov dword [ecx], eax
cmp dword [ecx], 0
jne 0x444d11
sub ecx, 4
dec ebx
cmp dword [ecx], 0
je 0x444cbe
jmp 0x444d11
mov ebx, ebp
add dword [esp + 0x2c], ebp
shl ebp, 0x1f
mov dword [esp + 0x2c4], ebp
jmp 0x444d11
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 0x444cfc
sar dword [esp + 0xb0], 1
sub dword [esp + 0xac], 0x10
sub dword [esp + 0x84], 2
cmp dword [esp + 0x84], 0x473a00
jae 0x444934
cmp dword [esp + 0x24], 0xffffffe5
jl 0x444da0
cmp dword [esp + 0x24], 0xffffffff
jg 0x444da0
mov esi, 4
mov ecx, dword [esp + 0x24]
movsx eax, word [ecx*2 + 0x473836]
mov dword [esp + 0x1c], eax
mov eax, ecx
shl eax, 4
lea ecx, [esp + 0x284]
lea edx, [eax + 0x47380c]
mov eax, dword [edx]
sub edx, 4
mov dword [ecx], eax
add ecx, 4
lea eax, [esp + 0x290]
cmp ecx, eax
jbe 0x444d6f
cmp dword [esp + 0x290], 0
jne 0x445710
sub eax, 4
dec esi
cmp dword [eax], 0
je 0x444d92
jmp 0x445710
cmp dword [esp + 0x24], 0
jge 0x444e19
mov edx, dword [esp + 0x24]
neg edx
mov ecx, edx
sar ecx, 3
mov ax, word [ecx*2 + 0x473938]
shr ax, 5
movzx ebp, ax
cmp ebp, edx
jge 0x444dc6
inc ecx
mov ax, word [ecx*2 + 0x473938]
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 + 0x473920]
shl edx, 4
add ecx, ebp
add edx, 0x47388c
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 0x444dff
jmp 0x444e99
cmp dword [esp + 0x24], 0x37
jl 0x444e8d
mov ecx, dword [esp + 0x24]
sar ecx, 3
mov ax, word [ecx*2 + 0x473ac2]
shr ax, 5
movzx edx, ax
cmp edx, dword [esp + 0x24]
jg 0x444e3d
inc ecx
mov ax, word [ecx*2 + 0x473ac0]
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 + 0x473aa8]
shl edx, 4
sub ecx, ebp
add edx, 0x473a14
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 0x444e76
jmp 0x444e99
mov dword [esp + 0x3c], 0
mov ecx, dword [esp + 0x24]
cmp ecx, 0x37
jne 0x444ed6
xor edx, edx
mov esi, 4
mov ecx, 0x473a14
lea edi, [esp + 0x284]
movsx eax, word [0x473aa8]
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 0x444ebc
jmp 0x444f79
lea edx, [ecx - 0x1b]
test edx, edx
jle 0x444f32
mov ecx, 0x1b
lea esi, [edx*8 + 0x47322c]
mov dword [esp + 0x58], 2
movsx eax, word [edx*2 + 0x473406]
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 0x444f07
cmp dword [esp + 0x548], 0
jne 0x444f32
sub eax, 4
dec dword [esp + 0x58]
cmp dword [eax], 0
je 0x444f26
mov esi, 2
lea edi, [esp + 0x284]
movsx eax, word [ecx*2 + 0x473406]
lea ecx, [ecx*8 + 0x47322c]
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 0x444f51
cmp dword [esp + 0x288], 0
jne 0x444f79
sub eax, 4
dec esi
cmp dword [eax], 0
je 0x444f70
test edx, edx
jle 0x445348
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 0x4450b7
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 0x445032
mov eax, dword [esp + 0x5c]
dec dword [esp + 0x5c]
mov dword [esp + eax*4 + 0x640], 0
js 0x4450f4
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 0x4451cf
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 0x4451b5
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 0x445128
sub edi, 4
lea eax, [esp + 0x280]
sub dword [esp + 0xd0], 4
cmp edi, eax
jne 0x445112
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 0x445223
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 0x4451fd
cmp dword [ecx], 0
jne 0x445231
sub ecx, 4
dec esi
cmp dword [ecx], 0
je 0x445228
cmp dword [esp + 0x284], 0
jle 0x445268
shl dword [esp + 0x284], 1
dec dword [esp + 0x1c]
cmp esi, 2
jb 0x445268
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 0x445256
cmp dword [esp + esi*4 + 0x280], 0
jne 0x445273
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 0x445348
mov esi, edx
test edi, edi
je 0x4452aa
mov ebp, 1
mov cl, 0x1f
sub cl, al
shl ebp, cl
jmp 0x4452bb
cmp dword [esp + edx*4 + 0x284], 0
mov ebp, 1
jl 0x4452bb
xor ebp, ebp
test edx, edx
je 0x445338
lea eax, [esp + edx*4 + 0x280]
mov ecx, dword [eax]
add ecx, ebp
mov dword [eax], ecx
cmp ebp, ecx
jbe 0x445316
lea eax, [esp + edx*4 + 0x27c]
lea esi, [edx - 1]
mov dword [esp + 0x280], 0
cmp dword [eax], 0xffffffff
jne 0x4452f3
sub eax, 4
dec esi
cmp dword [eax], 0xffffffff
je 0x4452ea
test esi, esi
je 0x445300
inc dword [esp + esi*4 + 0x280]
jmp 0x445348
mov dword [esp + 0x284], 0x80000000
mov esi, 1
add dword [esp + 0x1c], esi
jmp 0x445348
test edi, edi
je 0x445328
lea edx, [ebp*2]
dec edx
not edx
and edx, ecx
mov dword [eax], edx
cmp dword [eax], 0
jne 0x445348
sub eax, 4
dec esi
cmp dword [eax], 0
je 0x44532d
jmp 0x445348
mov esi, ebp
add dword [esp + 0x1c], ebp
shl ebp, 0x1f
mov dword [esp + 0x284], ebp
cmp dword [esp + 0x3c], 0
je 0x445710
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 0x445486
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 0x445401
mov eax, dword [esp + 0x50]
dec dword [esp + 0x50]
mov dword [esp + eax*4 + 0x600], 0
js 0x4454c3
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 0x44559d
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 0x445583
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 0x4454f7
sub edi, 4
lea eax, [esp + 0x280]
sub dword [esp + 0xcc], 4
cmp edi, eax
jne 0x4454e1
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 0x4455eb
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 0x4455c5
cmp dword [ecx], 0
jne 0x4455f9
sub ecx, 4
dec esi
cmp dword [ecx], 0
je 0x4455f0
cmp dword [esp + 0x284], 0
jle 0x445630
shl dword [esp + 0x284], 1
dec dword [esp + 0x1c]
cmp esi, 2
jb 0x445630
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 0x44561e
cmp dword [esp + esi*4 + 0x280], 0
jne 0x44563b
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 0x445710
mov esi, edx
test edi, edi
je 0x445672
mov ebp, 1
mov cl, 0x1f
sub cl, al
shl ebp, cl
jmp 0x445683
cmp dword [esp + edx*4 + 0x284], 0
mov ebp, 1
jl 0x445683
xor ebp, ebp
test edx, edx
je 0x445700
lea ecx, [esp + edx*4 + 0x280]
mov eax, dword [ecx]
add eax, ebp
mov dword [ecx], eax
cmp eax, ebp
jae 0x4456de
lea eax, [esp + edx*4 + 0x27c]
lea esi, [edx - 1]
mov dword [esp + 0x280], 0
cmp dword [eax], 0xffffffff
jne 0x4456bb
sub eax, 4
dec esi
cmp dword [eax], 0xffffffff
je 0x4456b2
test esi, esi
je 0x4456c8
inc dword [esp + esi*4 + 0x280]
jmp 0x445710
mov dword [esp + 0x284], 0x80000000
mov esi, 1
add dword [esp + 0x1c], esi
jmp 0x445710
test edi, edi
je 0x4456f0
lea edx, [ebp*2]
dec edx
not edx
and edx, eax
mov dword [ecx], edx
cmp dword [ecx], 0
jne 0x445710
sub ecx, 4
dec esi
cmp dword [ecx], 0
je 0x4456f5
jmp 0x445710
mov esi, ebp
add dword [esp + 0x1c], ebp
shl ebp, 0x1f
mov dword [esp + 0x284], ebp
test ebx, ebx
je 0x445acc
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 0x445844
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 0x4457bf
mov eax, dword [esp + 0x48]
dec dword [esp + 0x48]
mov dword [esp + eax*4 + 0x5c0], 0
js 0x445881
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 0x445958
lea ecx, [esp + esi*4 + 0x280]
add esi, ebx
shl esi, 2
mov dword [esp + 0xc8], esi
test ebx, ebx
je 0x44593e
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 0x4458b3
sub ecx, 4
lea eax, [esp + 0x280]
sub dword [esp + 0xc8], 4
cmp ecx, eax
jne 0x44589b
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 0x4459a6
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 0x445980
cmp dword [edx], 0
jne 0x4459b4
sub edx, 4
dec esi
cmp dword [edx], 0
je 0x4459ab
cmp dword [esp + 0x284], 0
jle 0x4459eb
shl dword [esp + 0x284], 1
dec dword [esp + 0x1c]
cmp esi, 2
jb 0x4459eb
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 0x4459d9
cmp dword [esp + esi*4 + 0x280], 0
jne 0x4459f6
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 0x445acc
mov esi, edi
test ebx, ebx
je 0x445a2e
mov ebp, 1
mov cl, 0x1f
sub cl, dl
shl ebp, cl
jmp 0x445a3f
cmp dword [esp + edi*4 + 0x284], 0
mov ebp, 1
jl 0x445a3f
xor ebp, ebp
test edi, edi
je 0x445abc
lea ecx, [esp + edi*4 + 0x280]
mov edx, dword [ecx]
add edx, ebp
mov dword [ecx], edx
cmp ebp, edx
jbe 0x445a9a
lea eax, [esp + edi*4 + 0x27c]
lea esi, [edi - 1]
mov dword [esp + 0x280], 0
cmp dword [eax], 0xffffffff
jne 0x445a77
sub eax, 4
dec esi
cmp dword [eax], 0xffffffff
je 0x445a6e
test esi, esi
je 0x445a84
inc dword [esp + esi*4 + 0x280]
jmp 0x445acc
mov dword [esp + 0x284], 0x80000000
mov esi, 1
add dword [esp + 0x1c], esi
jmp 0x445acc
test ebx, ebx
je 0x445aac
lea eax, [ebp*2]
dec eax
not eax
and eax, edx
mov dword [ecx], eax
cmp dword [ecx], 0
jne 0x445acc
sub ecx, 4
dec esi
cmp dword [ecx], 0
je 0x445ab1
jmp 0x445acc
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 0x445ae1
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 0x445c10
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 0x445b8b
mov eax, dword [esp + 0x40]
dec dword [esp + 0x40]
mov dword [esp + eax*4 + 0x580], 0
js 0x445c4d
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 0x445d27
lea ecx, [esp + eax*4 + 0x300]
add eax, esi
shl eax, 2
mov dword [esp + 0xc0], eax
test esi, esi
je 0x445d0d
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 0x445c81
sub ecx, 4
lea eax, [esp + 0x300]
sub dword [esp + 0xc0], 4
cmp ecx, eax
jne 0x445c6b
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 0x445d75
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 0x445d4f
cmp dword [edx], 0
jne 0x445d86
sub edx, 4
dec dword [esp + 0x14]
cmp dword [edx], 0
je 0x445d7a
cmp dword [esp + 0x304], 0
jle 0x445dc1
shl dword [esp + 0x304], 1
dec dword [esp + 0x20]
cmp dword [esp + 0x14], 2
jb 0x445dc1
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 0x445daf
mov ecx, dword [esp + 0x14]
cmp dword [esp + ecx*4 + 0x300], 0
jne 0x445dd3
dec dword [esp + 0x14]
cmp dword [esp + 0x20], 0
jle 0x445de8
mov edx, 1
sub edx, dword [esp + 0x10]
jmp 0x443bab
mov edx, dword [esp + 0x20]
neg edx
test edx, edx
je 0x445e46
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 0x445e3d
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 0x445e22
cmp dword [esi], 0
je 0x445e46
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 0x445f58
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 0x445e81
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
cmp dword [esp + 0x38], 0
je 0x445f2d
mov dword [esp + 0x300], 0
cmp dword [esp + 0x14], 0
je 0x445f15
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 0x445f05
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 0x445ebe
mov ecx, dword [esp + 0x98]
cmp dword [ecx], 0
jne 0x445f15
dec dword [esp + 0x14]
mov ecx, dword [esp + 0x300]
inc edx
add cl, 0x30
dec dword [esp + 0x38]
mov byte [edx - 1], cl
jne 0x445e8c
cmp dword [esp + 0x94], 0
jg 0x4460f7
cmp dword [esp + 0x304], 0
jge 0x445f58
lea ecx, [edx - 1]
cmp byte [ecx], 0x39
jne 0x445f56
mov byte [ecx], 0x30
dec ecx
cmp byte [ecx], 0x39
je 0x445f4d
inc byte [ecx]
cmp dword [esp + 0x60], 0
jle 0x4461c7
cmp dword [esp + 0x34], 0
jle 0x446016
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 0x445fa4
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 0x446004
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 0x445fef
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 0x445fce
mov ecx, dword [esp + 0x14]
cmp dword [esp + ecx*4 + 0x300], 0
jne 0x446016
dec dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
sub ecx, edx
add ecx, eax
mov dword [esp + 0x38], ecx
test ecx, ecx
jle 0x4460cb
mov dword [esp + 0x300], 0
cmp dword [esp + 0x14], 0
je 0x4460b3
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 0x4460a3
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 0x44605c
mov ecx, dword [esp + 0x90]
cmp dword [ecx], 0
jne 0x4460b3
dec dword [esp + 0x14]
mov ecx, dword [esp + 0x300]
inc edx
add cl, 0x30
dec dword [esp + 0x38]
mov byte [edx - 1], cl
jne 0x44602a
test byte [esp + 0x756], 0x40
jne 0x4461c7
cmp dword [esp + 0x304], 0
jl 0x44617f
cmp dword [esp + 0x18], 0
je 0x446283
jmp 0x4461c7
test byte [esp + 0x756], 0x40
jne 0x4461c7
cmp dword [esp + 0x304], 0
mov ecx, 1
jl 0x446116
xor ecx, ecx
test ecx, ecx
jne 0x446140
cmp dword [esp + 0x94], 1
jne 0x446138
add dword [esp + 0x304], 0x10000
mov ecx, 1
js 0x446138
xor ecx, ecx
test ecx, ecx
je 0x4461c7
cmp byte [edx - 1], 0x39
jne 0x446151
mov ecx, 0x39
dec edx
cmp byte [edx - 1], cl
je 0x44614b
inc byte [edx - 1]
cmp edx, eax
jne 0x4461c7
dec eax
mov esi, dword [esp + 0x764]
inc dword [esi]
cmp dword [esp + 0x8c], 0
je 0x4461c7
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x74c], ecx
jge 0x4461c7
jmp 0x4461bc
cmp byte [edx - 1], 0x39
jne 0x446190
mov ecx, 0x39
dec edx
cmp byte [edx - 1], cl
je 0x44618a
inc byte [edx - 1]
cmp edx, eax
jne 0x4461c7
dec eax
mov esi, dword [esp + 0x764]
inc dword [esi]
cmp dword [esp + 0x8c], 0
je 0x4461c7
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x74c], ecx
jge 0x4461c7
mov ecx, dword [esp + 0x74c]
mov dword [esp + 0x18], ecx
test byte [esp + 0x754], 0x80
jne 0x4461f3
mov ecx, dword [esp + 0x18]
sub ecx, edx
lea esi, [ecx + eax]
mov ebx, esi
dec esi
test ebx, ebx
jle 0x446204
mov byte [edx], 0x30
inc edx
mov ecx, esi
dec esi
test ecx, ecx
jg 0x4461e1
xor edi, edi
jmp 0x44632e
cmp byte [edx - 1], 0x30
jne 0x446204
mov ecx, 0x30
dec edx
cmp byte [edx - 1], cl
je 0x4461fe
xor edi, edi
jmp 0x44632e
test esi, esi
je 0x446271
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, 0x49249c
cmp byte [0x49249c], 0
je 0x446243
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
cmp byte [eax], 0
jne 0x446238
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 0x44632e
mov edi, 0xc
jmp 0x44632e
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 0x446297
mov dword [esp + 0x18], 1
jmp 0x4462ca
test byte [esp + 0x754], 2
je 0x4462ca
mov eax, dword [esp + 0x750]
inc eax
mov dword [esp + 0x18], eax
cmp dword [esp + 0x74c], eax
jge 0x4462c3
mov ecx, dword [esp + 0x74c]
mov dword [esp + 0x18], ecx
jmp 0x4462ca
cmp dword [esp + 0x18], 1
jl 0x44630f
mov eax, dword [esp + 0x758]
mov ecx, dword [esp + 0x18]
mov edx, eax
dec dword [esp + 0x18]
test ecx, ecx
je 0x4462ef
mov byte [edx], 0x30
inc edx
mov ecx, dword [esp + 0x18]
dec dword [esp + 0x18]
test ecx, ecx
jne 0x4462df
mov esi, dword [esp + 0x764]
xor edi, edi
test byte [esp + 0x757], 0x40
mov dword [esi], 1
je 0x44632e
mov edi, 0xb
jmp 0x44632e
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 0x446347
mov esi, eax
sub esi, dword [esp + 0x758]
mov dword [ecx], esi
mov ecx, dword [esp + 0x760]
test ecx, ecx
je 0x44635b
sub edx, dword [esp + 0x758]
mov dword [ecx], edx
mov ecx, dword [esp + 0x76c]
test ecx, ecx
je 0x446368
mov dword [ecx], edi
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x730
ret