Function at 0x412740
Capabilities:
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ecx, 0x4fc
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x29c
mov dword [ebp - 0x1f4], 0
mov edi, dword [ebp + 8]
cmp dword [ebp + 0x18], 0x4fc
mov dword [edi + 0xfd0], 0
mov esi, dword [edi + 0x80]
cmovle ecx, dword [ebp + 0x18]
imul eax, dword [ebp + 0x10], 0x190
mov dword [ebp - 0x208], ecx
cmp eax, esi
je 0x4127c0
imul eax, dword [ebp + 0x10], 0xc8
cmp esi, eax
je 0x4127c0
imul eax, dword [ebp + 0x10], 0x64
cmp esi, eax
je 0x4127c0
imul eax, dword [ebp + 0x10], 0x32
cmp esi, eax
je 0x4127c0
mov ebx, dword [ebp + 0x10]
lea edx, [ebx + ebx*4]
lea edx, [edx + edx*4]
cmp esi, edx
je 0x4127c0
lea edx, [esi + esi*2]
cmp eax, edx
jne 0x414066
lea esi, [esi]
mov edx, dword [ebp - 0x208]
test edx, edx
jle 0x414066
mov dword [ebp - 0x218], 0
mov ecx, dword [edi + 4]
mov ebx, dword [edi]
mov dword [ebp - 0x220], ecx
mov ecx, dword [edi + 0x5c]
mov dword [ebp - 0x228], ebx
cmp ecx, 0x803
mov dword [ebp - 0x20c], ecx
je 0x412803
mov ebx, dword [edi + 0x64]
mov dword [ebp - 0x218], ebx
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x412e00
mov ebx, dword [edi + 0x90]
cmp ebx, 0xfffffc18
je 0x412e27
cmp ebx, 0xffffffff
je 0x412e52
mov edx, esi
mov eax, esi
mov dword [edi + 0x8c], ebx
sar edx, 0x1f
idiv dword [ebp + 0x10]
cmp dword [ebp - 0x208], 2
mov dword [ebp - 0x204], eax
mov ecx, eax
jle 0x412d10
lea eax, [eax + eax*2]
shl eax, 3
cmp eax, ebx
jg 0x412d10
cmp ecx, 0x31
jle 0x412cf0
mov eax, dword [edi + 0x84]
test eax, eax
jne 0x4128a6
mov edx, dword [ebp - 0x204]
mov ecx, dword [ebp - 0x204]
lea eax, [ebx + edx*4]
mov edx, eax
shl ecx, 3
sar edx, 0x1f
mov ebx, ecx
idiv ecx
cmp eax, dword [ebp - 0x208]
cmovg eax, dword [ebp - 0x208]
imul ebx, eax
mov dword [ebp - 0x208], eax
mov dword [edi + 0x8c], ebx
mov eax, dword [ebp - 0x204]
imul eax, dword [ebp - 0x208]
shl eax, 3
mov dword [ebp - 0x24c], eax
imul eax, dword [ebp - 0x204], 0xffffffc4
lea eax, [ebx + eax + 0xbb8]
mov ebx, 0x7f
mov dword [ebp - 0x21c], eax
mov eax, dword [edi + 0x6c]
cmp eax, 0xbb9
je 0x4128fc
xor bl, bl
cmp eax, 0xbba
je 0x4128fc
mov eax, dword [edi + 0x7c]
test eax, eax
js 0x414580
imul ebx, eax, 0x147
sar ebx, 8
mov ecx, dword [edi + 0x68]
mov eax, dword [edi + 0x60]
cmp ecx, 0xfffffc18
je 0x41416d
cmp eax, 2
je 0x4141f6
mov dword [edi + 0x98], eax
cmp dword [ebp - 0x20c], 0x803
je 0x41414e
mov edx, dword [edi + 0x78]
cmp edx, 0xfffffc18
mov dword [ebp - 0x20c], edx
je 0x414201
mov ecx, dword [edi + 0xb8]
mov dword [edi + 0xb4], edx
cmp dword [ebp - 0x20c], 0x3ea
je 0x412986
mov eax, esi
mov edx, 0x51eb851f
imul edx
mov eax, esi
sar eax, 0x1f
sar edx, 5
sub edx, eax
cmp dword [ebp + 0x10], edx
jge 0x412986
mov dword [edi + 0xb4], 0x3ea
mov dword [ebp - 0x20c], 0x3ea
cmp dword [edi + 0x98], 1
je 0x4138eb
xor eax, eax
test ecx, ecx
mov dword [edi + 0x40], eax
jle 0x4129b8
cmp dword [ebp - 0x20c], 0x3ea
je 0x4142ec
cmp ecx, 0x3ea
je 0x414350
cmp dword [edi + 0xc8], 0
mov dword [ebp - 0x25c], 0
je 0x415132
mov dword [edi + 0xc8], 0
mov dword [ebp - 0x254], 1
mov dword [ebp - 0x22c], 0x101
mov eax, 0x51eb851f
mov dword [ebp - 0x258], 1
imul esi
mov eax, esi
sar eax, 0x1f
sar edx, 6
sub edx, eax
mov eax, dword [ebp - 0x208]
imul eax, edx
add edx, dword [ebp + 0x10]
mov dword [ebp - 0x200], edx
mov edx, eax
sar edx, 0x1f
idiv dword [ebp - 0x200]
cmp eax, 0x101
cmovg eax, dword [ebp - 0x22c]
mov dword [ebp - 0x22c], eax
mov eax, dword [edi + 0x84]
test eax, eax
jne 0x413f45
mov edx, dword [ebp - 0x220]
add edx, edi
cmp dword [ebp - 0x20c], 0x3ea
mov dword [ebp - 0x248], edx
je 0x414133
mov dword [ebp - 0x250], 0
cmp ecx, 0x3ea
je 0x41492a
mov ecx, dword [edi + 0xcc]
test ecx, ecx
mov dword [ebp - 0x220], ecx
jne 0x412a94
mov eax, dword [edi + 0x4c]
test eax, eax
je 0x41405b
mov ecx, dword [edi + 0x2c]
mov eax, 0x51eb851f
add ecx, 0x2d
imul ecx, dword [ebp - 0x21c]
imul ecx
sar ecx, 0x1f
sar edx, 4
sub edx, ecx
mov ecx, dword [edi + 0x84]
mov eax, edx
sub eax, 0x3e8
test ecx, ecx
cmovne eax, edx
mov dword [ebp - 0x21c], eax
cmp dword [edi + 0x60], 2
mov edx, 0x452aa0
mov eax, 0x452a60
je 0x4141dd
mov ecx, ebx
imul ecx, ebx
mov ebx, dword [eax]
sub ebx, dword [edx]
imul ebx, ecx
sar ebx, 0xe
add ebx, dword [edx]
mov dword [ebp - 0x230], ebx
mov dword [ebp - 0x1e8], ebx
mov ebx, dword [eax + 4]
sub ebx, dword [edx + 4]
imul ebx, ecx
sar ebx, 0xe
add ebx, dword [edx + 4]
mov dword [ebp - 0x234], ebx
mov dword [ebp - 0x1e4], ebx
mov ebx, dword [eax + 8]
sub ebx, dword [edx + 8]
imul ebx, ecx
sar ebx, 0xe
add ebx, dword [edx + 8]
mov dword [ebp - 0x238], ebx
mov dword [ebp - 0x1e0], ebx
mov ebx, dword [eax + 0xc]
sub ebx, dword [edx + 0xc]
imul ebx, ecx
sar ebx, 0xe
add ebx, dword [edx + 0xc]
mov dword [ebp - 0x23c], ebx
mov dword [ebp - 0x1dc], ebx
mov ebx, dword [eax + 0x10]
sub ebx, dword [edx + 0x10]
imul ebx, ecx
sar ebx, 0xe
add ebx, dword [edx + 0x10]
mov dword [ebp - 0x240], ebx
mov dword [ebp - 0x1d8], ebx
mov ebx, dword [eax + 0x14]
sub ebx, dword [edx + 0x14]
imul ebx, ecx
sar ebx, 0xe
add ebx, dword [edx + 0x14]
mov dword [ebp - 0x244], ebx
mov dword [ebp - 0x1d4], ebx
mov ebx, dword [eax + 0x18]
sub ebx, dword [edx + 0x18]
imul ebx, ecx
sar ebx, 0xe
add ebx, dword [edx + 0x18]
mov dword [ebp - 0x1d0], ebx
mov edx, dword [edx + 0x1c]
mov eax, dword [eax + 0x1c]
sub eax, edx
imul eax, ecx
sar eax, 0xe
add eax, edx
mov edx, dword [ebp - 0x220]
test edx, edx
je 0x413655
mov edx, dword [ebp - 0x21c]
cmp edx, ebx
jge 0x414ffe
cmp edx, dword [ebp - 0x1d8]
jge 0x414fd9
cmp edx, dword [ebp - 0x1e0]
jge 0x414fcf
xor eax, eax
cmp edx, dword [ebp - 0x1e8]
setge al
add eax, 0x44d
mov dword [edi + 0xc4], eax
mov edx, dword [edi + 0x74]
cmp edx, eax
jge 0x412bfe
mov dword [edi + 0xc4], edx
mov eax, edx
mov ecx, dword [edi + 0x70]
cmp ecx, 0xfffffc18
je 0x4141d6
mov dword [edi + 0xc4], ecx
cmp dword [ebp - 0x20c], 0x3ea
je 0x412c3f
cmp dword [ebp - 0x24c], 0x3a97
jg 0x412c3f
cmp ecx, 0x44f
mov eax, 0x44f
cmovg ecx, eax
mov dword [edi + 0xc4], ecx
cmp esi, 0x5dc0
jg 0x412c70
cmp ecx, 0x450
jle 0x412eda
mov dword [edi + 0xc4], 0x450
cmp esi, 0x3e80
jle 0x412eee
mov ecx, 0x450
nop
cmp dword [ebp - 0x204], 0x33
mov edx, 0x1f40
mov eax, 0x2ee0
lea ebx, [esi*8]
mov dword [ebp - 0x200], ebx
cmovl eax, edx
imul eax, dword [ebp + 0x10]
mov edx, eax
sar edx, 0x1f
idiv ebx
cmp dword [ebp - 0x208], eax
jge 0x412f6c
mov dword [edi + 0xb4], 0x3ea
cmp ecx, 0x44e
je 0x414124
mov edx, esi
mov ecx, 0x32
mov eax, esi
sar edx, 0x1f
idiv ecx
cmp dword [ebp + 0x10], eax
jg 0x413497
mov ecx, dword [edi + 0xc4]
mov dword [ebp - 0x220], ecx
jmp 0x412fb7
mov eax, dword [ebp - 0x208]
imul eax, ecx
cmp eax, 0x12b
jle 0x412d10
cmp ebx, 0x95f
jg 0x412865
lea esi, [esi]
mov edx, dword [edi + 0xc4]
mov eax, dword [edi + 0xb4]
test edx, edx
jne 0x412e40
mov byte [ebp - 0x200], 0
mov edx, 0x44d
test eax, eax
mov ebx, 0x3e8
cmove eax, ebx
cmp dword [ebp - 0x204], 0x64
jg 0x412e70
cmp dword [ebp - 0x204], 0x31
jg 0x41507f
mov esi, 1
mov eax, 0x3e8
cmp byte [ebp - 0x200], 0
mov ebx, 0x44f
jne 0x412d8e
cmp eax, 0x3ea
je 0x412e82
mov esi, esi
lea edi, [edi]
mov ebx, 0x450
cmp edx, 0x450
cmovge ebx, edx
mov edx, dword [edi + 0x98]
xor edi, edi
cmp dword [ebp - 0x204], 0x18f
jg 0x412daf
add ecx, ecx
add edi, 1
cmp ecx, 0x18f
jle 0x412da2
mov ecx, esi
test cl, cl
jne 0x412ea0
cmp eax, 0x3ea
je 0x412eb4
lea edi, [edi*8 - 0x10]
sub ebx, 0x450
shl ebx, 4
or ebx, 0x60
or ebx, edi
cmp edx, 2
mov ecx, 1
sete al
shl eax, 2
or eax, ebx
mov ebx, dword [ebp + 0x14]
mov byte [ebx], al
lea esp, [ebp - 0xc]
mov eax, ecx
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, 0x51eb851f
mov eax, esi
mov ebx, dword [edi + 0x90]
imul ecx
mov eax, esi
sar eax, 0x1f
mov ecx, edx
sar ecx, 7
sub ecx, eax
cmp ebx, 0xfffffc18
jne 0x412820
imul eax, esi, 0x3c
mov ebx, dword [edi + 0x60]
mov edx, eax
sar edx, 0x1f
imul ebx, esi
idiv ecx
add ebx, eax
jmp 0x412829
cmp edx, 0x44f
setg byte [ebp - 0x200]
jmp 0x412d30
mov eax, dword [ebp - 0x208]
shl eax, 3
imul eax, esi
mov edx, eax
sar edx, 0x1f
idiv ecx
mov ebx, eax
jmp 0x412829
mov eax, 0x3ea
xor esi, esi
cmp eax, 0x3ea
jne 0x412d80
cmp edx, 0x44e
mov ebx, 0x44d
jne 0x412d80
jmp 0x412d8e
lea eax, [edi*8 - 0x10]
sub ebx, 0x4d
shl ebx, 5
or ebx, eax
jmp 0x412dd9
sub ebx, 0x44e
mov eax, 0xffffff80
cmp ebx, 0xffffffff
je 0x412ecc
mov eax, ebx
shl eax, 5
or eax, 0xffffff80
lea ebx, [edi*8]
or ebx, eax
jmp 0x412dd9
cmp esi, 0x3e80
jg 0x412c70
cmp ecx, 0x450
jne 0x412f10
mov dword [edi + 0xc4], 0x44f
cmp esi, 0x2ee0
jle 0x412f24
mov ecx, 0x44f
jmp 0x412c70
cmp esi, 0x2ee0
jg 0x412c70
cmp ecx, 0x44f
jne 0x412f40
mov dword [edi + 0xc4], 0x44e
cmp esi, 0x1f40
jle 0x412f58
mov ecx, 0x44e
jmp 0x412c70
cmp esi, 0x1f40
jg 0x412c70
cmp ecx, 0x44e
jne 0x412c70
mov dword [edi + 0xc4], 0x44d
mov ecx, 0x44d
jmp 0x412c70
mov ebx, dword [edi + 0xb4]
cmp ebx, 0x3ea
mov dword [ebp - 0x20c], ebx
je 0x412cb2
mov edx, esi
mov eax, esi
mov ebx, 0x32
sar edx, 0x1f
idiv ebx
cmp dword [ebp + 0x10], eax
jg 0x41348b
mov ecx, dword [edi + 0xc4]
cmp dword [ebp - 0x20c], 0x3e8
mov dword [ebp - 0x220], ecx
je 0x4142d1
cmp dword [edi + 0xb4], 0x3e9
je 0x4142bc
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x208]
mov ebx, dword [ebp + 0x14]
imul eax, dword [edi + 0x8c]
sub ecx, dword [ebp - 0x22c]
mov edx, eax
sar edx, 0x1f
idiv dword [ebp - 0x200]
cmp ecx, eax
cmovle eax, ecx
mov ecx, dword [ebp - 0x208]
add ebx, 1
mov dword [ebp - 0x238], ebx
sub eax, 1
mov dword [ebp - 0x214], eax
sub ecx, 1
mov dword [ebp - 0x230], ecx
mov dword [esp + 4], ebx
lea ebx, [ebp - 0x1c8]
mov dword [esp + 8], ecx
mov dword [esp], ebx
call fcn.0041e350
mov ecx, dword [ebp - 0x218]
mov dword [ebp - 0x23c], esp
add ecx, dword [ebp + 0x10]
mov dword [ebp - 0x234], ecx
mov ecx, dword [edi + 0x60]
mov eax, dword [ebp - 0x234]
imul eax, ecx
lea eax, [eax*4 + 0x12]
and eax, 0xfffffff0
call fcn.00443b10
mov edx, dword [ebp - 0x218]
sub esp, eax
lea ebx, [esp + 0x1c]
mov dword [ebp - 0x21c], ebx
imul edx, ecx
test edx, edx
jle 0x413095
mov eax, dword [edi + 0x94]
sub eax, dword [ebp - 0x218]
imul eax, ecx
lea ecx, [edi + eax*4]
xor eax, eax
fld dword [ecx + eax*4 + 0xd0]
fstp dword [ebx + eax*4]
add eax, 1
cmp eax, edx
jne 0x413084
cmp dword [edi + 0xb4], 0x3ea
je 0x414676
mov ecx, dword [ebp - 0x248]
mov eax, dword [ecx + 8]
mov edx, dword [edi + 0xa0]
sub eax, edx
mov ecx, eax
and eax, 0xffff
sar ecx, 0x10
imul eax, eax, 0x3d7
imul ecx, ecx, 0x3d7
sar eax, 0x10
add eax, ecx
add edx, eax
mov dword [edi + 0xa0], edx
sar edx, 8
mov dword [esp], edx
call fcn.00422370
cmp dword [edi + 0x5c], 0x800
je 0x4146d9
mov ebx, dword [edi + 0x60]
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x210], ebx
imul edx, ebx
test edx, edx
jle 0x413141
mov eax, dword [ebp - 0x218]
mov ebx, dword [ebp - 0x21c]
imul eax, dword [ebp - 0x210]
lea ecx, [ebx + eax*4]
mov ebx, dword [ebp + 0xc]
xor eax, eax
nop
fld dword [ebx + eax*4]
fstp dword [ecx + eax*4]
add eax, 1
cmp eax, edx
jne 0x413120
jmp 0x413141
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x413141
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
mov ecx, dword [edi + 0xb4]
cmp ecx, 0x3ea
je 0x413742
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x240], esp
imul eax, dword [ebp - 0x210]
lea eax, [eax + eax + 0x10]
and eax, 0xfffffff0
call fcn.00443b10
sub esp, eax
mov eax, dword [ebp - 0x214]
lea ebx, [esp + 0x1c]
shl eax, 3
imul eax, dword [ebp - 0x204]
cmp ecx, 0x3e9
mov dword [edi + 0x24], eax
je 0x414070
mov eax, dword [edi + 0x98]
mov edx, dword [edi + 0x84]
mov esi, dword [edi + 0x80]
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x20c], edx
imul eax, dword [ebp + 0x10], 0x3e8
mov edx, eax
sar edx, 0x1f
idiv esi
mov edx, dword [ebp - 0x224]
cmp dword [ebp - 0x220], 0x44d
mov dword [edi + 0xc], edx
mov dword [edi + 0x20], eax
mov eax, dword [ebp - 0x210]
mov dword [edi + 8], eax
je 0x4145b6
cmp dword [ebp - 0x220], 0x44e
mov eax, 0x2ee0
mov edx, 0x3e80
cmovne eax, edx
mov dword [edi + 0x1c], eax
cmp ecx, 0x3e9
je 0x41466a
cmp ecx, 0x3e8
mov dword [edi + 0x18], 0x1f40
je 0x4145c2
mov eax, dword [ebp - 0x20c]
xor edx, edx
mov dword [edi + 0x14], 0x3e80
test eax, eax
mov eax, dword [ebp - 0x230]
sete dl
mov dword [ebp - 0x204], edx
mov dword [edi + 0x38], edx
mov edx, 0x4fb
sub eax, dword [ebp - 0x22c]
cmp eax, 0x4fb
cmovg eax, edx
cmp ecx, 0x3e9
lea edx, [eax*8]
mov dword [ebp - 0x1f8], eax
mov dword [edi + 0x3c], edx
jne 0x413288
shl eax, 6
lea ecx, [eax + edx]
mov edx, 0x66666667
mov eax, ecx
imul edx
mov eax, ecx
sar eax, 0x1f
sar edx, 2
sub edx, eax
mov dword [edi + 0x3c], edx
mov eax, dword [ebp - 0x204]
test eax, eax
je 0x4132c2
mov ecx, dword [edi + 0x24]
shl esi, 3
mov eax, dword [ebp + 0x10]
imul eax, ecx
mov edx, eax
sar edx, 0x1f
idiv esi
lea edx, [ecx - 0x7d0]
shl eax, 3
cmp ecx, 0x7d1
mov dword [edi + 0x3c], eax
mov eax, 1
cmovge eax, edx
mov dword [edi + 0x24], eax
mov eax, dword [ebp - 0x250]
lea edx, [edi + 8]
mov dword [ebp - 0x204], edx
test eax, eax
je 0x413382
mov dword [ebp - 0x1f0], 0
mov esi, dword [edi + 0x94]
mov ecx, dword [ebp - 0x210]
imul ecx, esi
test ecx, ecx
jle 0x41333c
xor eax, eax
fld dword [0x452ad4]
nop
fld dword [edi + eax*4 + 0xd0]
fmul st(1)
fld dword [0x452ad8]
fxch st(1)
fcomi st(1)
fcmovb st(0), st(1)
fstp st(1)
fld dword [0x452adc]
fcomi st(1)
fcmovnb st(0), st(1)
fstp st(1)
fistp dword [ebp - 0x1fc]
mov edx, dword [ebp - 0x1fc]
mov word [ebx + eax*2], dx
add eax, 1
cmp eax, ecx
jne 0x413300
fstp st(0)
lea ecx, [edi + 8]
mov dword [esp + 0x18], 1
lea eax, [ebp - 0x1f0]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], esi
mov dword [esp + 8], ebx
mov dword [ebp - 0x204], ecx
mov dword [esp + 4], ecx
mov ecx, dword [ebp - 0x248]
mov dword [esp], ecx
call fcn.00420730
mov ecx, dword [edi + 0x60]
mov dword [ebp - 0x210], ecx
mov ecx, dword [ebp - 0x210]
imul ecx, dword [ebp + 0x10]
test ecx, ecx
jle 0x4133e8
mov eax, dword [ebp - 0x218]
mov edx, dword [ebp - 0x21c]
fld dword [0x452ad4]
imul eax, dword [ebp - 0x210]
lea esi, [edx + eax*4]
xor eax, eax
nop
fld dword [esi + eax*4]
fmul st(1)
fld dword [0x452ad8]
fxch st(1)
fcomi st(1)
fcmovb st(0), st(1)
fstp st(1)
fld dword [0x452adc]
fcomi st(1)
fcmovnb st(0), st(1)
fstp st(1)
fistp dword [ebp - 0x1fc]
mov edx, dword [ebp - 0x1fc]
mov word [ebx + eax*2], dx
add eax, 1
cmp eax, ecx
jne 0x4133b0
fstp st(0)
lea eax, [ebp - 0x1f8]
mov dword [esp + 0x18], 0
lea ecx, [ebp - 0x1c8]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov ebx, dword [ebp - 0x204]
mov dword [esp + 4], ebx
mov ecx, dword [ebp - 0x248]
mov dword [esp], ecx
call fcn.00420730
test eax, eax
jne 0x4145a6
mov eax, dword [ebp - 0x1f8]
test eax, eax
je 0x414a76
cmp dword [edi + 0xb4], 0x3e8
je 0x414c55
mov eax, dword [ebp - 0x220]
sub eax, 0x44d
mov edx, dword [edi + 0x58]
test edx, edx
mov dword [edi + 0x44], edx
je 0x413480
mov dword [edi + 0xc8], 1
mov dword [ebp - 0x254], 0
mov dword [ebp - 0x258], 1
mov esp, dword [ebp - 0x240]
jmp 0x41374d
cmp ecx, 0x44f
jle 0x414036
mov eax, esi
mov edx, 0x51eb851f
mov dword [ebp - 0x220], esp
mov dword [ebp - 0x200], 0x4fc
imul edx
mov eax, esi
sar eax, 0x1f
sar edx, 3
sub edx, eax
cmp dword [ebp + 0x10], edx
setg al
movzx ecx, al
movzx eax, al
add eax, 2
add ecx, 1
mov dword [ebp - 0x204], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x218], ecx
sub eax, 3
mov edx, eax
sar edx, 0x1f
idiv dword [ebp - 0x204]
cmp eax, 0x4fc
cmovg eax, dword [ebp - 0x200]
mov dword [ebp - 0x200], eax
mov eax, dword [ebp - 0x204]
imul eax, dword [ebp - 0x200]
add eax, 0xf
and eax, 0xfffffff0
call fcn.00443b10
sub esp, eax
lea ebx, [esp + 0x1c]
lea eax, [ebp - 0x144]
mov dword [ebp - 0x20c], ebx
mov dword [esp], eax
call fcn.00420140
mov eax, dword [edi + 0xb4]
mov ebx, dword [edi + 0x70]
mov ecx, dword [edi + 0x78]
mov dword [edi + 0x78], eax
mov eax, dword [edi + 0xc4]
mov dword [ebp - 0x22c], ebx
mov ebx, dword [edi + 0x40]
mov dword [ebp - 0x228], ecx
mov ecx, dword [edi + 0x68]
mov dword [edi + 0x70], eax
mov eax, dword [edi + 0x98]
test ebx, ebx
mov dword [ebp - 0x21c], ebx
mov dword [ebp - 0x214], ecx
mov dword [edi + 0x68], eax
je 0x414575
mov dword [edi + 0x68], 1
mov ecx, dword [ebp - 0x25c]
mov ebx, 0
mov dword [ebp - 0x208], 0
test ecx, ecx
jne 0x41401e
jmp 0x4135d9
mov dword [esp + 8], eax
lea eax, [ebp - 0x144]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.00420180
test eax, eax
js 0x413645
mov ecx, dword [ebp - 0x200]
add ebx, 1
add dword [ebp - 0x208], ecx
cmp dword [ebp - 0x204], ebx
jle 0x41468a
mov esi, dword [ebp - 0x20c]
mov dword [edi + 0x40], 0
mov eax, dword [ebp - 0x200]
mov ecx, dword [edi + 0x80]
add esi, dword [ebp - 0x208]
mov dword [esp + 0x10], eax
mov eax, 0x51eb851f
imul ecx
mov eax, ecx
sar eax, 0x1f
mov dword [esp + 0xc], esi
sar edx, 4
sub edx, eax
mov eax, 0x51eb851f
mov dword [esp + 8], edx
imul ecx, dword [edi + 0x60]
imul ecx
sar ecx, 0x1f
sar edx, 4
sub edx, ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp], edi
imul edx, ebx
lea eax, [ecx + edx*4]
mov dword [esp + 4], eax
call fcn.00412740
test eax, eax
jns 0x4135a0
mov ecx, 0xfffffffd
mov esp, dword [ebp - 0x220]
jmp 0x412dee
mov ecx, dword [edi + 0xc4]
mov edx, ebx
sub edx, eax
add eax, ebx
cmp ecx, 0x451
cmovl edx, eax
cmp dword [ebp - 0x21c], edx
jge 0x414fb1
mov eax, dword [ebp - 0x240]
mov edx, dword [ebp - 0x240]
sub eax, dword [ebp - 0x244]
add edx, dword [ebp - 0x244]
cmp ecx, 0x450
cmovl eax, edx
cmp dword [ebp - 0x21c], eax
jge 0x414fc5
mov eax, dword [ebp - 0x238]
mov edx, dword [ebp - 0x238]
sub eax, dword [ebp - 0x23c]
add edx, dword [ebp - 0x23c]
cmp ecx, 0x44f
cmovl eax, edx
cmp dword [ebp - 0x21c], eax
jge 0x414fbb
mov eax, dword [ebp - 0x230]
mov edx, dword [ebp - 0x230]
sub eax, dword [ebp - 0x234]
add edx, dword [ebp - 0x234]
cmp ecx, 0x44e
cmovl eax, edx
cmp dword [ebp - 0x21c], eax
setge al
movzx eax, al
add eax, 0x44d
cmp dword [ebp - 0x20c], 0x3ea
mov dword [edi + 0xc4], eax
je 0x412bef
mov ebx, dword [edi + 0x50]
test ebx, ebx
jne 0x412bef
cmp eax, 0x44f
jle 0x412bef
mov dword [edi + 0xc4], 0x44f
mov eax, 0x44f
jmp 0x412bef
mov eax, dword [ebp - 0x220]
sub eax, 0x44d
cmp eax, 3
mov edx, 0x15
jbe 0x413933
mov ecx, dword [ebp - 0x228]
add ecx, edi
mov dword [ebp - 0x204], ecx
mov dword [esp + 8], edx
mov dword [esp], ecx
mov dword [esp + 4], 0x271c
call fcn.0040e7b0
mov eax, dword [edi + 0x98]
mov dword [esp + 4], 0x2718
mov dword [esp + 8], eax
mov ebx, dword [ebp - 0x204]
mov dword [esp], ebx
call fcn.0040e7b0
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], 0xfa2
mov dword [esp], ebx
call fcn.0040e7b0
cmp dword [edi + 0xb4], 0x3e8
je 0x41393f
mov dword [esp + 8], 0
mov dword [esp + 4], 0xfa6
mov ebx, dword [ebp - 0x204]
mov dword [esp], ebx
call fcn.0040e7b0
mov dword [esp + 8], 2
mov dword [esp + 4], 0x2712
mov dword [esp], ebx
call fcn.0040e7b0
mov ecx, dword [edi + 0xb4]
cmp ecx, 0x3e9
mov dword [ebp - 0x210], ecx
je 0x4149d3
mov ecx, dword [edi + 0x84]
test ecx, ecx
jne 0x414afb
mov esi, dword [edi + 0x80]
mov ecx, dword [edi + 0x60]
mov ebx, 0x51eb851f
mov dword [ebp - 0x224], esp
mov dword [ebp - 0x20c], ecx
imul ecx, esi
mov eax, ecx
sar ecx, 0x1f
imul ebx
mov ebx, edx
sar ebx, 7
sub ebx, ecx
lea eax, [ebx*4 + 0x12]
and eax, 0xfffffff0
call fcn.00443b10
sub esp, eax
cmp dword [ebp - 0x210], 0x3e8
lea ecx, [esp + 0x1c]
mov dword [ebp - 0x22c], ecx
je 0x413995
mov eax, dword [edi + 0xb8]
cmp eax, dword [ebp - 0x210]
je 0x413995
test eax, eax
jle 0x413995
test ebx, ebx
mov ecx, dword [edi + 0x94]
jle 0x41399b
mov eax, ecx
mov edx, 0x51eb851f
sub eax, dword [edi + 0x64]
mov dword [ebp - 0x218], eax
mov eax, esi
imul edx
mov eax, esi
mov esi, dword [ebp - 0x22c]
sar eax, 0x1f
sar edx, 7
sub eax, edx
add eax, dword [ebp - 0x218]
imul eax, dword [ebp - 0x20c]
lea edx, [edi + eax*4]
xor eax, eax
fld dword [edx + eax*4 + 0xd0]
fstp dword [esi + eax*4]
add eax, 1
cmp eax, ebx
jne 0x4138d5
jmp 0x41399b
cmp dword [edi + 0xbc], 2
jne 0x412993
mov eax, dword [edi + 0x40]
test eax, eax
jne 0x412993
cmp dword [ebp - 0x20c], 0x3ea
je 0x412993
cmp ecx, 0x3ea
je 0x415046
mov dword [edi + 0x98], 2
mov eax, 1
jmp 0x412995
mov edx, dword [eax*4 + 0x452ac0]
jmp 0x41375b
mov ecx, dword [edi + 0x60]
mov edx, 0x51eb851f
mov dword [ebp - 0x224], esp
mov dword [ebp - 0x20c], ecx
imul ecx, dword [edi + 0x80]
mov eax, ecx
sar ecx, 0x1f
imul edx
sar edx, 7
sub edx, ecx
lea eax, [edx*4 + 0x12]
and eax, 0xfffffff0
call fcn.00443b10
mov dword [ebp - 0x210], 0x3e8
sub esp, eax
mov dword [ebp - 0x214], 0
lea ecx, [esp + 0x1c]
mov dword [ebp - 0x22c], ecx
mov ecx, dword [edi + 0x94]
mov eax, ecx
sub eax, dword [ebp - 0x234]
imul eax, dword [ebp - 0x20c]
test eax, eax
jle 0x415078
mov ebx, dword [ebp + 0x10]
imul ebx, dword [ebp - 0x20c]
lea esi, [eax + ebx]
lea edx, [edi + ebx*4 + 0xd0]
neg ebx
lea esi, [edi + esi*4 + 0xd0]
shl ebx, 2
fld dword [edx]
fstp dword [edx + ebx]
add edx, 4
cmp edx, esi
jne 0x4139d2
mov edx, dword [ebp - 0x20c]
imul edx, ecx
cmp eax, edx
jge 0x413a16
mov ebx, dword [ebp - 0x234]
sub ebx, ecx
mov ecx, dword [ebp - 0x20c]
imul ecx, ebx
mov ebx, dword [ebp - 0x21c]
lea ecx, [ebx + ecx*4]
fld dword [ecx + eax*4]
fstp dword [edi + eax*4 + 0xd0]
add eax, 1
cmp eax, edx
jne 0x413a05
cmp dword [ebp - 0x210], 0x3e9
je 0x414505
mov dword [edi + 0x54], 0x4000
cmp dword [ebp - 0x20c], 2
je 0x414396
cmp dword [ebp - 0x210], 0x3ea
je 0x413a94
bsr eax, dword [ebp - 0x1ac]
mov edx, dword [ebp - 0x1b4]
xor eax, 0x1f
cmp dword [ebp - 0x210], 0x3e9
lea eax, [eax + edx - 0x20]
je 0x415094
mov edx, dword [ebp - 0x230]
add eax, 0x11
shl edx, 3
cmp edx, eax
jl 0x413a94
mov esi, dword [ebp - 0x258]
test esi, esi
jne 0x414b9b
mov ecx, dword [edi + 0xb4]
mov dword [ebp - 0x210], ecx
mov dword [edi + 0xc8], 0
xor ebx, ebx
mov dword [ebp - 0x218], 0
mov dword [ebp - 0x20c], 0
cmp dword [ebp - 0x210], 0x3ea
je 0x414517
cmp dword [ebp - 0x210], 0x3e8
mov dword [ebp - 0x228], 0x11
je 0x414366
mov eax, dword [ebp - 0x230]
lea ecx, [ebp - 0x1c8]
sub eax, dword [ebp - 0x20c]
cmp eax, dword [ebp - 0x214]
cmovg eax, dword [ebp - 0x214]
xor esi, esi
mov dword [ebp - 0x210], eax
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.0041e820
test bl, bl
je 0x413bd5
mov dword [esp + 8], 0
mov dword [esp + 4], 0x271a
mov ebx, dword [ebp - 0x204]
mov dword [esp], ebx
call fcn.0040e7b0
mov dword [esp + 8], 0
mov dword [esp + 4], 0xfa6
mov dword [esp], ebx
call fcn.0040e7b0
mov dword [esp + 0x14], 0
mov edx, 0x51eb851f
mov ecx, dword [ebp - 0x20c]
mov dword [esp + 0x10], ecx
mov eax, dword [ebp - 0x238]
add eax, dword [ebp - 0x210]
mov dword [esp + 0xc], eax
mov ecx, dword [edi + 0x80]
mov eax, ecx
sar ecx, 0x1f
imul edx
sar edx, 6
sub edx, ecx
mov dword [esp + 8], edx
mov ecx, dword [ebp - 0x21c]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.0040b840
mov ecx, 0xfffffffd
test eax, eax
js 0x413f2f
lea eax, [ebp - 0x1f4]
mov dword [esp + 4], 0xfbf
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.0040e7b0
mov dword [esp + 4], 0xfbc
mov dword [esp], ebx
call fcn.0040e7b0
mov ebx, dword [ebp - 0x228]
mov dword [esp + 4], 0x271a
mov dword [esp + 8], ebx
mov ecx, dword [ebp - 0x204]
mov dword [esp], ecx
call fcn.0040e7b0
mov eax, dword [edi + 0xb4]
cmp eax, 0x3e8
je 0x413cae
mov edx, dword [edi + 0xb8]
cmp eax, edx
je 0x413c89
test edx, edx
jle 0x413c89
mov dword [esp + 4], 0xfbc
mov ebx, dword [ebp - 0x204]
mov dword [esp], ebx
call fcn.0040e7b0
lea eax, [ebp - 0x144]
mov edx, 0x51eb851f
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 2
mov ecx, dword [edi + 0x80]
mov eax, ecx
sar ecx, 0x1f
imul edx
sar edx, 7
sub edx, ecx
mov dword [esp + 8], edx
mov ecx, dword [ebp - 0x22c]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.0040b840
mov dword [esp + 8], 0
mov dword [esp + 4], 0x2712
mov dword [esp], ebx
call fcn.0040e7b0
bsr eax, dword [ebp - 0x1ac]
mov edx, dword [ebp - 0x210]
mov ecx, dword [ebp - 0x1b4]
xor eax, 0x1f
shl edx, 3
lea eax, [eax + ecx - 0x20]
cmp edx, eax
jge 0x414984
mov eax, dword [ebp - 0x254]
xor eax, 1
test dword [ebp - 0x218], eax
je 0x413e0e
mov ebx, dword [edi + 0x80]
mov edx, 0x51eb851f
mov dword [esp + 4], 0xfbc
mov eax, ebx
imul edx
mov eax, ebx
sar eax, 0x1f
mov ecx, edx
mov ebx, edx
mov edx, dword [ebp - 0x204]
sar ecx, 6
sar ebx, 7
sub ecx, eax
sub ebx, eax
mov dword [esp], edx
mov dword [ebp - 0x27c], ecx
call fcn.0040e7b0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x271a
mov eax, dword [ebp - 0x204]
mov dword [esp], eax
call fcn.0040e7b0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x2712
mov edx, dword [ebp - 0x204]
mov dword [esp], edx
call fcn.0040e7b0
mov edx, dword [ebp + 0x10]
lea eax, [ebp - 0x144]
mov ecx, dword [ebp - 0x27c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 2
mov dword [esp + 8], ebx
sub edx, ecx
mov eax, edx
sub eax, ebx
mov ebx, dword [ebp - 0x21c]
imul eax, dword [edi + 0x60]
lea eax, [ebx + eax*4]
mov dword [esp + 4], eax
mov ebx, dword [ebp - 0x204]
mov dword [esp], ebx
mov dword [ebp - 0x278], edx
mov dword [ebp - 0x27c], ecx
call fcn.0040b840
mov dword [esp + 0x14], 0
mov ebx, dword [ebp - 0x20c]
mov dword [esp + 0x10], ebx
mov eax, dword [ebp - 0x238]
add eax, dword [ebp - 0x210]
mov dword [esp + 0xc], eax
mov ecx, dword [ebp - 0x27c]
mov dword [esp + 8], ecx
mov edx, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x21c]
imul edx, dword [edi + 0x60]
lea eax, [ecx + edx*4]
mov dword [esp + 4], eax
mov ebx, dword [ebp - 0x204]
mov dword [esp], ebx
call fcn.0040b840
test eax, eax
js 0x41459c
lea eax, [ebp - 0x1f4]
mov dword [esp + 4], 0xfbf
mov dword [esp + 8], eax
mov ecx, dword [ebp - 0x204]
mov dword [esp], ecx
call fcn.0040e7b0
mov eax, dword [edi + 0x80]
mov ebx, dword [edi + 0x98]
mov ecx, dword [edi + 0xb4]
mov edx, eax
sar edx, 0x1f
idiv dword [ebp + 0x10]
xor edx, edx
cmp eax, 0x18f
jg 0x413e3d
add eax, eax
add edx, 1
cmp eax, 0x18f
jle 0x413e31
cmp ecx, 0x3e8
je 0x414969
cmp ecx, 0x3ea
je 0x414b76
mov eax, dword [ebp - 0x220]
lea ecx, [edx*8 - 0x10]
sub eax, 0x450
shl eax, 4
or eax, 0x60
or eax, ecx
cmp ebx, 2
mov ebx, dword [ebp + 0x14]
sete dl
shl edx, 2
or edx, eax
mov eax, dword [ebp - 0x1ac]
mov byte [ebx], dl
mov edx, dword [ebp - 0x1f4]
mov ebx, dword [ebp - 0x25c]
xor edx, eax
test ebx, ebx
mov dword [edi + 0xfd0], edx
mov edx, 0x3ea
jne 0x413ea8
mov edx, dword [edi + 0xb4]
mov ecx, dword [ebp + 0x10]
mov dword [edi + 0xb8], edx
bsr eax, eax
mov edx, dword [edi + 0x98]
xor eax, 0x1f
mov dword [edi + 0xcc], 0
mov dword [edi + 0xc0], ecx
mov ecx, dword [ebp - 0x1b4]
mov dword [edi + 0xbc], edx
mov edx, dword [ebp - 0x230]
lea eax, [eax + ecx - 0x20]
shl edx, 3
cmp edx, eax
jge 0x414526
cmp dword [ebp - 0x208], 1
mov ecx, 0xfffffffe
jle 0x413f2f
mov ebx, dword [ebp + 0x14]
mov esi, 1
mov byte [ebx + 1], 0
mov dword [edi + 0xfd0], 0
mov edx, dword [edi + 0x84]
mov ebx, dword [ebp - 0x20c]
test edx, edx
lea ecx, [esi + ebx + 1]
jne 0x413f2f
cmp ecx, 2
jg 0x414cc3
mov esp, dword [ebp - 0x224]
mov esp, dword [ebp - 0x23c]
lea esp, [ebp - 0xc]
mov eax, ecx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0x51eb851f
imul dword [edi + 0x8c]
mov eax, dword [edi + 0x8c]
sar edx, 9
sar eax, 0x1f
sub edx, eax
cmp dword [ebp - 0x22c], edx
cmovle edx, dword [ebp - 0x22c]
mov dword [ebp - 0x22c], edx
jmp 0x412a45
mov dword [edi + 0x78], 0x3ea
lea esi, [esi]
mov esi, dword [ebp - 0x20c]
mov eax, dword [ebp - 0x200]
mov ecx, dword [edi + 0x80]
add esi, dword [ebp - 0x208]
mov dword [esp + 0x10], eax
mov eax, 0x51eb851f
imul ecx
mov eax, ecx
sar eax, 0x1f
mov dword [esp + 0xc], esi
sar edx, 4
sub edx, eax
mov eax, 0x51eb851f
mov dword [esp + 8], edx
imul ecx, dword [edi + 0x60]
imul ecx
sar ecx, 0x1f
sar edx, 4
sub edx, ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp], edi
imul edx, ebx
lea eax, [ecx + edx*4]
mov dword [esp + 4], eax
call fcn.00412740
test eax, eax
js 0x413645
mov dword [esp + 8], eax
lea eax, [ebp - 0x144]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.00420180
test eax, eax
js 0x413645
mov ecx, dword [ebp - 0x200]
add ebx, 1
add dword [ebp - 0x208], ecx
cmp dword [ebp - 0x204], ebx
jle 0x41468a
cmp ebx, dword [ebp - 0x218]
mov dword [edi + 0x40], 0
jne 0x413f80
jmp 0x413f76
cmp dword [edi + 0xb4], 0x3e9
mov dword [ebp - 0x220], ecx
jne 0x412fc7
mov dword [edi + 0xb4], 0x3e8
jmp 0x412fc7
mov eax, dword [edi + 0xc4]
jmp 0x412bef
mov ecx, 0xffffffff
jmp 0x412dee
mov edx, dword [edi + 0x98]
mov esi, dword [edi + 0x80]
mov dword [ebp - 0x224], edx
mov edx, eax
sar edx, 0x1f
idiv dword [ebp - 0x224]
imul edx, dword [ebp + 0x10], 0x64
cmp dword [ebp - 0x220], 0x450
mov dword [edi + 0x24], eax
je 0x414ebf
cmp esi, edx
mov edx, dword [edi + 0x84]
mov dword [ebp - 0x20c], edx
je 0x414fe3
imul edx, edx, 0x3e8
lea eax, [eax + edx + 0x2328]
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
imul edx, dword [ebp - 0x224]
mov eax, esi
neg eax
shl eax, 3
mov dword [ebp - 0x244], edx
mov dword [edi + 0x24], edx
mov edx, eax
sar edx, 0x1f
idiv dword [ebp + 0x10]
mov edx, 0x66666667
add eax, dword [edi + 0x8c]
shl eax, 2
mov dword [ebp - 0x260], eax
imul edx
mov eax, dword [ebp - 0x260]
sar edx, 1
sar eax, 0x1f
sub edx, eax
cmp dword [ebp - 0x244], edx
jle 0x4131b2
mov dword [edi + 0x24], edx
jmp 0x4131b2
mov dword [edi + 0xc4], 0x44f
jmp 0x412cbe
mov dword [ebp - 0x250], 0
mov ecx, dword [edi + 0xcc]
mov dword [ebp - 0x220], ecx
jmp 0x412ac8
mov dword [edi + 0xb4], 0x3ea
mov ecx, dword [edi + 0xb8]
mov dword [ebp - 0x20c], 0x3ea
jmp 0x412986
cmp eax, 2
jne 0x412917
mov edx, ebx
imul edx, ebx
imul edx, edx, 0xffffd8f0
sar edx, 0xe
mov dword [ebp - 0x200], edx
add edx, 0x7d00
mov dword [ebp - 0x22c], edx
mov edx, dword [ebp - 0x200]
add edx, 0x9c40
cmp dword [edi + 0x98], 2
cmove edx, dword [ebp - 0x22c]
mov dword [ebp - 0x22c], edx
mov edx, dword [ebp - 0x21c]
cmp dword [ebp - 0x22c], edx
setl dl
movzx edx, dl
add edx, 1
mov dword [edi + 0x98], edx
jmp 0x41291d
mov ecx, eax
jmp 0x412c13
cmp dword [edi + 0x68], 1
mov ecx, 0x452a80
cmovne edx, ecx
mov ecx, 0x452a40
cmovne eax, ecx
jmp 0x412adc
mov dword [edi + 0x98], ecx
jmp 0x41291d
xor edx, edx
cmp eax, 2
je 0x414c8d
mov ecx, dword [edx*8 + 0x452a24]
mov eax, ebx
mov edx, dword [edx*8 + 0x452a20]
imul eax, ebx
sub edx, ecx
imul eax, edx
sar eax, 0xe
add eax, ecx
mov ecx, dword [edi + 0xb8]
cmp ecx, 0x3ea
je 0x414c4b
lea edx, [eax + 0xfa0]
test ecx, ecx
cmovg eax, edx
cmp eax, dword [ebp - 0x21c]
setle al
movzx eax, al
lea edx, [eax + eax + 0x3e8]
mov eax, dword [edi + 0x30]
mov dword [ebp - 0x20c], edx
mov dword [edi + 0xb4], edx
test eax, eax
je 0x41428f
mov eax, pe_nt_image_headers32
sub eax, ebx
sar eax, 4
cmp dword [edi + 0x28], eax
jle 0x41428f
mov dword [edi + 0xb4], 0x3e8
mov dword [ebp - 0x20c], 0x3e8
mov eax, dword [edi + 0x34]
test eax, eax
je 0x41294e
cmp ebx, 0x64
jle 0x41294e
mov dword [edi + 0xb4], 0x3e8
mov dword [ebp - 0x20c], 0x3e8
jmp 0x41295a
cmp dword [ebp - 0x220], 0x44f
jg 0x412fc7
jmp 0x41404c
cmp ecx, 0x44f
jle 0x412fc7
mov dword [edi + 0xb4], 0x3e9
jmp 0x412fc7
cmp ecx, 0x3ea
je 0x414c9a
mov eax, esi
mov edx, 0x51eb851f
imul edx
mov eax, esi
sar eax, 0x1f
sar edx, 5
sub edx, eax
cmp dword [ebp + 0x10], edx
jl 0x4129b8
mov dword [edi + 0xb4], ecx
mov dword [ebp - 0x20c], ecx
mov dword [ebp - 0x25c], 1
mov dword [ebp - 0x254], 0
cmp dword [edi + 0xc8], 0
jne 0x4129cf
jmp 0x4129e3
mov dword [ebp - 0x25c], 0
mov dword [ebp - 0x254], 1
jmp 0x414334
bsr eax, dword [ebp - 0x1ac]
mov edx, dword [ebp - 0x1b4]
xor eax, 0x1f
lea esi, [eax + edx - 0x19]
lea edx, [ebp - 0x1c8]
sar esi, 3
mov dword [esp], edx
call fcn.0041e870
mov dword [ebp - 0x210], esi
jmp 0x413b11
cmp word [edi + 0x9c], 0x3fff
jle 0x4143ae
cmp dword [edi + 0x54], 0x3fff
jg 0x413a3a
lea eax, [ebp - 0x1ec]
mov dword [esp + 4], 0x271f
mov dword [esp + 8], eax
mov ecx, dword [ebp - 0x204]
mov dword [esp], ecx
call fcn.0040e7b0
mov eax, dword [edi + 0x60]
mov ebx, dword [edi + 0x54]
fild word [edi + 0x9c]
mov dword [ebp - 0x210], eax
mov eax, 0xbb80
mov edx, eax
mov dword [ebp - 0x20c], ebx
mov ebx, dword [ebp - 0x1ec]
sar edx, 0x1f
fild dword [ebp - 0x20c]
idiv dword [edi + 0x80]
fld dword [0x452ae0]
mov ecx, dword [ebx + 0x3c]
fmul st(2), st(0)
fld1
fsubr st(3), st(0)
fxch st(2)
fmulp st(1)
fsubp st(1)
mov esi, eax
mov eax, dword [ebx + 4]
mov edx, eax
sar edx, 0x1f
idiv esi
test eax, eax
mov ebx, eax
jle 0x41503d
mov edx, dword [ebp - 0x210]
mov dword [ebp - 0x228], edi
shl esi, 2
mov eax, dword [ebp - 0x21c]
fld dword [0x452ae4]
shl edx, 2
mov dword [ebp - 0x218], edx
add eax, 4
xor edx, edx
mov edi, dword [ebp - 0x218]
lea esi, [esi]
fld dword [ecx]
add edx, 1
add ecx, esi
fmul st(0)
fld dword [eax - 4]
fld dword [eax]
fsubr st(1)
fmul st(3)
fld1
fsub st(3)
fmul st(6)
fxch st(3)
fmul st(5)
faddp st(3)
fmulp st(2)
fsub st(1)
fstp dword [eax - 4]
fadd dword [eax]
fstp dword [eax]
add eax, edi
cmp edx, ebx
jne 0x414460
fstp st(0)
fstp st(1)
mov edi, dword [ebp - 0x228]
cmp dword [ebp + 0x10], edx
jle 0x4144e4
mov eax, dword [ebp - 0x210]
mov ebx, dword [ebp - 0x21c]
fmul dword [0x452ae4]
mov ecx, dword [ebp - 0x210]
imul eax, edx
lea eax, [ebx + eax*4 + 4]
mov ebx, dword [ebp + 0x10]
shl ecx, 2
fld dword [eax - 4]
add edx, 1
fld dword [eax]
fsubr st(1)
fmul st(2)
fsub st(1), st(0)
fxch st(1)
fstp dword [eax - 4]
fadd dword [eax]
fstp dword [eax]
add eax, ecx
cmp edx, ebx
jne 0x4144c3
fstp st(0)
jmp 0x4144e6
fstp st(0)
movzx eax, word [ebp - 0x20c]
mov ecx, dword [edi + 0xb4]
mov word [edi + 0x9c], ax
mov dword [ebp - 0x210], ecx
jmp 0x413a3a
cmp dword [edi + 0x98], 1
jne 0x413a2d
jmp 0x413a26
mov dword [ebp - 0x228], 0
jmp 0x413ade
cmp dword [edi + 0xb4], 0x3e8
jne 0x413f12
mov ecx, dword [ebp - 0x218]
test ecx, ecx
jne 0x413f12
cmp esi, 2
jle 0x413f12
mov ecx, dword [ebp + 0x14]
cmp byte [ecx + esi], 0
jne 0x413f12
mov eax, ecx
jmp 0x414568
cmp byte [eax + esi], 0
jne 0x413f12
sub esi, 1
cmp esi, 2
jne 0x41455e
jmp 0x413f12
mov dword [edi + 0xbc], eax
jmp 0x41357b
cmp dword [ebp - 0x20c], 0x800
mov ebx, 0x73
mov eax, 0x30
cmovne ebx, eax
jmp 0x4128fc
mov ecx, 0xfffffffd
jmp 0x413f2f
mov ecx, 0xfffffffd
mov esp, dword [ebp - 0x240]
jmp 0x413f35
mov dword [edi + 0x1c], 0x1f40
jmp 0x4131ff
cmp dword [ebp - 0x204], 0x32
mov dword [edi + 0x14], 0x3e80
mov edx, dword [ebp - 0x24c]
jle 0x4145e9
lea ecx, [edx + edx]
mov edx, 0x55555556
mov eax, ecx
sar ecx, 0x1f
imul edx
sub edx, ecx
cmp edx, 0x32c7
jg 0x41462a
cmp dword [edi + 0x1c], 0x2ee0
mov eax, 0x2ee0
mov dword [edi + 0x14], 0x2ee0
cmovle eax, dword [edi + 0x1c]
cmp edx, 0x257f
mov dword [edi + 0x1c], eax
jg 0x41462a
mov edx, 0x1f40
cmp eax, 0x1f40
mov dword [edi + 0x14], 0x1f40
cmovle edx, eax
mov dword [edi + 0x1c], edx
mov eax, dword [ebp - 0x20c]
xor ecx, ecx
mov edx, 0x4fb
test eax, eax
mov eax, dword [ebp - 0x230]
sete cl
mov dword [ebp - 0x204], ecx
mov dword [edi + 0x38], ecx
sub eax, dword [ebp - 0x22c]
cmp eax, 0x4fb
cmovg eax, edx
mov dword [ebp - 0x1f8], eax
shl eax, 3
mov dword [edi + 0x3c], eax
jmp 0x413288
mov dword [edi + 0x18], 0x3e80
jmp 0x41321e
mov dword [esp], 0x3c
call fcn.00421e00
shl eax, 8
jmp 0x4130ae
mov ebx, dword [ebp + 0x18]
mov dword [esp + 8], ebx
lea ebx, [ebp - 0x144]
mov ecx, dword [ebp + 0x14]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.004205d0
test eax, eax
mov ecx, eax
js 0x413645
mov ebx, dword [ebp - 0x228]
mov dword [edi + 0x78], ebx
mov ebx, dword [ebp - 0x22c]
mov dword [edi + 0x70], ebx
mov ebx, dword [ebp - 0x214]
mov dword [edi + 0x68], ebx
mov ebx, dword [ebp - 0x21c]
mov dword [edi + 0x40], ebx
jmp 0x41364a
mov ebx, dword [edi + 0x60]
lea ecx, [edi + 0xa4]
cwde
mov edx, dword [ebp - 0x218]
mov dword [ebp - 0x200], ecx
mov ecx, dword [ebp - 0x21c]
mov dword [ebp - 0x210], ebx
imul edx, ebx
mov ebx, 0x10624dd3
lea esi, [ecx + edx*4]
imul ecx, eax, 0x9a7
mov eax, dword [edi + 0x80]
imul ebx
mov eax, dword [edi + 0x80]
mov ebx, edx
mov edx, ecx
sar eax, 0x1f
sar ebx, 6
sub ebx, eax
sar edx, 0x1f
mov eax, ecx
idiv ebx
mov ebx, eax
imul eax, eax, 0xfffffe29
mov ecx, ebx
sar ecx, 0x10
add eax, 0x10000000
mov dword [ebp - 0x268], ecx
mov dword [ebp - 0x20c], eax
sar eax, 6
mov edx, dword [ebp - 0x20c]
mov dword [ebp - 0x240], eax
mov eax, ebx
sar eax, 0xf
add eax, 1
sar eax, 1
sar edx, 0x16
mov dword [ebp - 0x244], eax
movsx eax, bx
mov dword [ebp - 0x260], edx
movzx edx, bx
mov dword [ebp - 0x26c], eax
imul edx, eax
movzx eax, word [ebp - 0x244]
sar edx, 0x10
add eax, ecx
movzx ecx, word [ebp - 0x240]
imul eax, ebx
imul ebx, dword [ebp - 0x244]
mov dword [ebp - 0x270], ecx
movsx ecx, word [ebp - 0x240]
add eax, edx
cwde
mov dword [ebp - 0x274], ecx
mov ecx, dword [ebp - 0x260]
imul ecx, eax
imul eax, dword [ebp - 0x270]
mov dword [ebp - 0x264], ecx
sar eax, 0x10
add ecx, eax
mov eax, dword [ebp - 0x268]
imul eax, dword [ebp - 0x26c]
add eax, edx
mov edx, dword [ebp - 0x260]
lea eax, [eax + ebx - 0x800000]
sar eax, 0xf
add eax, 1
sar eax, 1
imul eax, dword [ebp - 0x240]
imul edx, dword [ebp - 0x274]
add eax, ecx
mov dword [ebp - 0x1fc], eax
mov eax, dword [ebp - 0x270]
fild dword [ebp - 0x1fc]
fld dword [0x452ad0]
fmul st(1), st(0)
imul eax, dword [ebp - 0x274]
sar eax, 0x10
add edx, eax
mov eax, dword [ebp - 0x20c]
sar eax, 0x15
add eax, 1
sar eax, 1
imul eax, dword [ebp - 0x240]
add eax, edx
mov dword [ebp - 0x1fc], eax
fild dword [ebp - 0x1fc]
fmul st(1)
mov eax, dword [ebp - 0x20c]
mov edx, dword [ebp + 0x10]
neg eax
fild dword [ebp - 0x20c]
add eax, eax
test edx, edx
fmul st(2)
mov dword [ebp - 0x1fc], eax
fild dword [ebp - 0x1fc]
fmulp st(3)
jle 0x4148c8
mov ebx, dword [ebp - 0x210]
mov dword [ebp - 0x20c], edi
xor eax, eax
mov ecx, dword [ebp - 0x200]
xor edx, edx
mov edi, dword [ebp + 0xc]
shl ebx, 2
fld dword [edi + eax]
add edx, 1
fld st(0)
fmul st(2)
fld dword [ecx]
fadd st(1)
fxch st(2)
fmul st(5)
fadd dword [ecx + 4]
fld st(2)
fmul st(7)
fsubp st(1)
fstp dword [ecx]
fld st(1)
fmul st(4)
fsubp st(1)
fstp dword [ecx + 4]
fstp dword [esi + eax]
add eax, ebx
cmp edx, dword [ebp + 0x10]
jne 0x414892
mov edi, dword [ebp - 0x20c]
cmp dword [ebp - 0x210], 2
jne 0x41312f
mov eax, dword [ebp + 0x10]
lea edx, [edi + 0xac]
test eax, eax
jle 0x413139
mov ecx, dword [ebp + 0xc]
xor eax, eax
mov ebx, dword [ebp + 0x10]
fld dword [ecx + eax*8 + 4]
fld st(0)
fmul st(2)
fld dword [edx]
fadd st(1)
fxch st(2)
fmul st(5)
fadd dword [edx + 4]
fld st(2)
fmul st(7)
fsubp st(1)
fstp dword [edx]
fld st(1)
fmul st(4)
fsubp st(1)
fstp dword [edx + 4]
fstp dword [esi + eax*8 + 4]
add eax, 1
cmp eax, ebx
jne 0x4148ee
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x413141
lea eax, [ebp - 0x198]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.00420620
mov ecx, dword [edi + 0xb4]
cmp ecx, 0x3ea
mov dword [ebp - 0x20c], ecx
je 0x415111
mov dword [ebp - 0x250], 1
mov esi, dword [edi + 0x80]
jmp 0x412a79
movzx eax, byte [ebp - 0x220]
lea edx, [edx*8 - 0x10]
sub eax, 0x4d
shl eax, 5
or eax, edx
jmp 0x413e6f
lea ebx, [ebp - 0x1c8]
mov dword [esp + 0x14], ebx
mov ecx, dword [ebp - 0x210]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], ecx
mov ebx, dword [ebp + 0x10]
mov dword [esp + 8], ebx
mov ecx, dword [ebp - 0x21c]
mov dword [esp + 4], ecx
mov ebx, dword [ebp - 0x204]
mov dword [esp], ebx
call fcn.0040b840
mov ecx, 0xfffffffd
test eax, eax
mov esi, eax
jns 0x413cae
jmp 0x413f2f
bsr eax, dword [ebp - 0x1ac]
mov edx, dword [ebp - 0x1b4]
mov esi, dword [ebp - 0x258]
xor eax, 0x1f
lea ebx, [eax + edx - 0x19]
sar ebx, 3
test esi, esi
lea eax, [ebx + 3]
cmovne ebx, eax
mov eax, dword [edi + 0x84]
test eax, eax
je 0x414ca5
mov eax, dword [ebp + 0x10]
mov esi, dword [edi + 0x80]
add ebx, dword [ebp - 0x214]
imul eax, dword [edi + 0x24]
mov ecx, esi
neg ecx
mov edx, eax
shl ecx, 3
sar edx, 0x1f
idiv ecx
add eax, ebx
mov dword [ebp - 0x214], eax
mov ebx, dword [edi + 0x60]
mov dword [ebp - 0x224], esp
mov ecx, ebx
mov dword [ebp - 0x20c], ebx
mov ebx, 0x51eb851f
imul ecx, esi
mov eax, ecx
sar ecx, 0x1f
imul ebx
mov ebx, edx
sar ebx, 7
sub ebx, ecx
lea eax, [ebx*4 + 0x12]
and eax, 0xfffffff0
call fcn.00443b10
sub esp, eax
lea ecx, [esp + 0x1c]
mov dword [ebp - 0x22c], ecx
jmp 0x413877
mov dword [edi + 0xfd0], 0
mov eax, dword [edi + 0x80]
mov ebx, dword [edi + 0x98]
mov ecx, dword [edi + 0xb4]
mov edx, eax
sar edx, 0x1f
idiv dword [ebp + 0x10]
xor edx, edx
cmp eax, 0x18f
jg 0x414aaf
add eax, eax
add edx, 1
cmp eax, 0x18f
jle 0x414aa3
cmp ecx, 0x3e8
je 0x414eff
cmp ecx, 0x3ea
je 0x415008
mov eax, dword [ebp - 0x220]
lea edx, [edx*8 - 0x10]
sub eax, 0x450
shl eax, 4
or eax, 0x60
or eax, edx
cmp ebx, 2
mov ebx, dword [ebp + 0x14]
mov ecx, 1
sete dl
shl edx, 2
or edx, eax
mov byte [ebx], dl
jmp 0x4145ab
mov dword [esp + 8], 1
mov dword [esp + 4], 0xfa6
mov ebx, dword [ebp - 0x204]
mov dword [esp], ebx
call fcn.0040e7b0
mov eax, dword [edi + 0x88]
mov dword [esp], ebx
mov dword [esp + 4], 0xfb4
mov dword [esp + 8], eax
call fcn.0040e7b0
mov eax, dword [edi + 0x8c]
mov dword [esp], ebx
mov dword [esp + 4], 0xfa2
mov dword [esp + 8], eax
call fcn.0040e7b0
mov ecx, dword [ebp - 0x230]
mov ebx, dword [edi + 0xb4]
mov esi, dword [edi + 0x80]
sub ecx, dword [ebp - 0x22c]
mov dword [ebp - 0x210], ebx
mov dword [ebp - 0x214], ecx
jmp 0x413827
lea ecx, [edx*8]
mov edx, dword [ebp - 0x220]
xor eax, eax
sub edx, 0x44e
cmovns eax, edx
shl eax, 5
or eax, 0xffffff80
or eax, ecx
jmp 0x413e6f
mov dword [esp + 8], 1
lea eax, [ebp - 0x1c8]
mov ebx, dword [ebp - 0x254]
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0041e4a0
mov ecx, dword [edi + 0xb4]
cmp ecx, 0x3e9
mov dword [ebp - 0x210], ecx
je 0x414f1a
bsr eax, dword [ebp - 0x1ac]
mov dword [ebp - 0x20c], 0x101
mov edx, dword [ebp - 0x1b4]
mov ebx, dword [edi + 0x8c]
mov ecx, dword [ebp - 0x230]
xor eax, 0x1f
lea eax, [eax + edx - 0x19]
mov edx, 0x51eb851f
sar eax, 3
sub ecx, eax
mov eax, ebx
sar ebx, 0x1f
imul edx
mov eax, 2
sar edx, 9
sub edx, ebx
cmp ecx, edx
cmovle edx, ecx
cmp edx, 2
cmovge eax, edx
cmp eax, 0x101
cmovg eax, dword [ebp - 0x20c]
mov dword [ebp - 0x20c], eax
movzx ebx, byte [ebp - 0x254]
mov dword [ebp - 0x218], 1
jmp 0x413ab4
sub eax, 0xfa0
jmp 0x414246
mov eax, dword [edi + 0x48]
cmp eax, 0x1f40
je 0x414fa0
cmp eax, 0x2ee0
je 0x415029
cmp eax, 0x3e80
jne 0x41344d
mov dword [ebp - 0x220], 0x44f
mov eax, 2
jmp 0x413458
xor edx, edx
cmp ecx, 1
setne dl
jmp 0x41420c
mov dword [ebp - 0x20c], ecx
jmp 0x4129b8
cmp ebx, dword [ebp - 0x214]
mov esi, dword [edi + 0x80]
cmovl ebx, dword [ebp - 0x214]
mov dword [ebp - 0x214], ebx
jmp 0x414a2f
cmp dword [ebp - 0x208], ecx
je 0x414eb4
jl 0x41459c
mov ebx, dword [ebp + 0x14]
test byte [ebx], 3
jne 0x41459c
mov ebx, dword [ebp - 0x208]
sub ebx, ecx
cmp ebx, 1
mov dword [ebp - 0x200], ebx
jle 0x4150eb
sub ebx, 2
mov edx, 0x80808081
mov eax, ebx
imul edx
lea eax, [ecx - 1]
lea edi, [edx + ebx]
sar ebx, 0x1f
sar edi, 7
sub edi, ebx
test eax, eax
jle 0x414d3d
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x210], ecx
lea edx, [ebx + edi]
mov dword [ebp - 0x204], edx
mov ecx, edx
movzx edx, byte [ebx + eax]
mov byte [ecx + eax + 2], dl
sub eax, 1
jne 0x414d2a
mov ecx, dword [ebp - 0x210]
mov ebx, dword [ebp + 0x14]
or byte [ebx], 3
test edi, edi
mov byte [ebx + 1], 0x41
je 0x414de7
mov eax, ebx
add eax, 2
neg eax
and eax, 3
cmp edi, eax
cmovbe eax, edi
cmp edi, 6
cmovbe eax, edi
xor ebx, ebx
test eax, eax
je 0x414d7d
mov edx, dword [ebp + 0x14]
mov byte [edx + ebx + 2], 0xff
add ebx, 1
cmp eax, ebx
ja 0x414d6d
cmp edi, eax
je 0x414de7
mov edx, edi
sub edx, eax
mov dword [ebp - 0x204], edx
shr edx, 2
mov dword [ebp - 0x210], edx
shl edx, 2
test edx, edx
mov dword [ebp - 0x214], edx
je 0x414dd8
mov edx, dword [ebp + 0x14]
lea eax, [edx + eax + 2]
mov dword [ebp - 0x218], eax
xor eax, eax
mov edx, dword [ebp - 0x218]
mov dword [edx + eax*4], 0xffffffff
add eax, 1
cmp dword [ebp - 0x210], eax
ja 0x414db2
mov eax, dword [ebp - 0x214]
add ebx, dword [ebp - 0x214]
cmp dword [ebp - 0x204], eax
je 0x414de7
mov edx, dword [ebp + 0x14]
mov byte [edx + ebx + 2], 0xff
add ebx, 1
cmp edi, ebx
jg 0x414dd8
movzx ebx, byte [ebp - 0x200]
lea eax, [ebx + edi - 2]
mov ebx, dword [ebp + 0x14]
mov byte [ebx + edi + 2], al
lea ebx, [ecx + edi + 3]
cmp dword [ebp - 0x208], ebx
jle 0x414eb4
add esi, dword [ebp - 0x20c]
mov eax, ebx
mov ecx, dword [ebp - 0x208]
not eax
add esi, edi
mov edi, dword [ebp + 0x14]
lea ecx, [ecx + eax + 1]
mov dword [ebp - 0x200], ecx
add edi, esi
mov edx, edi
neg edx
and edx, 3
cmp edx, ecx
cmova edx, ecx
mov ecx, dword [ebp - 0x208]
lea eax, [ecx + eax + 1]
mov ecx, ebx
cmp eax, 6
cmovbe edx, eax
test edx, edx
je 0x414e66
mov eax, dword [ebp + 0x14]
mov byte [eax + ecx], 0
add ecx, 1
mov eax, ecx
sub eax, ebx
cmp edx, eax
ja 0x414e4c
cmp dword [ebp - 0x200], edx
je 0x414eb4
mov ebx, dword [ebp - 0x200]
sub ebx, edx
mov esi, ebx
mov dword [ebp - 0x200], ebx
shr esi, 2
lea ebx, [esi*4]
test ebx, ebx
je 0x414ea2
lea edx, [edi + edx + 4]
xor eax, eax
mov dword [edx + eax*4], 0
add eax, 1
cmp eax, esi
jb 0x414e8a
add ecx, ebx
cmp ebx, dword [ebp - 0x200]
je 0x414eb4
mov ebx, dword [ebp + 0x14]
mov byte [ebx + ecx], 0
add ecx, 1
cmp dword [ebp - 0x208], ecx
jg 0x414ea2
mov ecx, dword [ebp - 0x208]
jmp 0x413f2f
cmp esi, edx
mov edx, dword [edi + 0x84]
mov dword [ebp - 0x20c], edx
je 0x415066
imul edx, edx, 0x3e8
lea eax, [eax + edx + 0x3e8]
add eax, eax
mov edx, 0x55555556
mov dword [ebp - 0x244], eax
imul edx
mov eax, dword [ebp - 0x244]
sar eax, 0x1f
sub edx, eax
jmp 0x4140ce
movzx eax, byte [ebp - 0x220]
lea edx, [edx*8 - 0x10]
sub eax, 0x4d
shl eax, 5
or eax, edx
jmp 0x414ae1
mov ebx, dword [edi + 0x8c]
mov edx, 0x51eb851f
mov dword [ebp - 0x20c], 0x101
mov ecx, dword [ebp - 0x230]
mov eax, ebx
sar ebx, 0x1f
sub ecx, dword [ebp - 0x214]
imul edx
mov eax, 2
sar edx, 9
sub ecx, 1
sub edx, ebx
cmp ecx, edx
cmovle edx, ecx
cmp edx, 2
cmovge eax, edx
lea edx, [ebp - 0x1c8]
cmp eax, 0x101
cmovg eax, dword [ebp - 0x20c]
mov dword [ebp - 0x20c], eax
mov dword [esp + 8], 0x100
mov eax, dword [ebp - 0x20c]
mov dword [esp], edx
sub eax, 2
mov dword [esp + 4], eax
call fcn.0041e570
mov ecx, dword [edi + 0xb4]
mov dword [ebp - 0x210], ecx
jmp 0x414c35
mov dword [ebp - 0x220], 0x44d
xor eax, eax
jmp 0x413458
mov eax, 0x451
jmp 0x413702
mov eax, 0x44f
jmp 0x413702
mov eax, 0x450
jmp 0x413702
mov eax, 0x44f
jmp 0x412be9
mov eax, 0x450
jmp 0x412be9
imul edx, edx, 0xbb8
lea eax, [eax + edx + 0x1f40]
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
jmp 0x4140ce
mov eax, 0x451
jmp 0x412be9
mov ecx, dword [ebp - 0x220]
shl edx, 3
xor eax, eax
sub ecx, 0x44e
cmovns eax, ecx
shl eax, 5
or eax, 0xffffff80
or eax, edx
jmp 0x414ae1
mov dword [ebp - 0x220], 0x44e
mov eax, 1
jmp 0x413458
fstp st(1)
xor edx, edx
jmp 0x414499
mov dword [edi + 0x40], 0
mov dword [ebp - 0x25c], 0
mov dword [ebp - 0x254], 1
jmp 0x414334
imul edx, edx, 0x3e8
lea eax, [eax + edx + 0x7d0]
jmp 0x414ee0
xor eax, eax
jmp 0x4139de
cmp eax, 0x3e8
sete bl
and byte [ebp - 0x200], bl
mov esi, ebx
jmp 0x412d5e
mov ecx, dword [ebp - 0x230]
lea edx, [eax + 0x25]
shl ecx, 3
cmp ecx, edx
jl 0x413a94
mov edx, dword [ebp - 0x258]
test edx, edx
jne 0x4150c6
mov edx, dword [ebp - 0x214]
add eax, 0x24
shl edx, 3
cmp eax, edx
jge 0x413a94
mov dword [esp + 8], 0xc
lea eax, [ebp - 0x1c8]
mov ebx, dword [ebp - 0x258]
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.0041e4a0
jmp 0x413a7a
sub ecx, 1
test ecx, ecx
jle 0x415102
mov edx, dword [ebp + 0x14]
movzx eax, byte [edx + ecx]
mov byte [edx + ecx + 1], al
sub ecx, 1
jne 0x4150f5
mov ecx, dword [ebp + 0x14]
or byte [ecx], 3
mov byte [ecx + 1], 1
jmp 0x414eb4
mov dword [ebp - 0x250], 1
mov ecx, dword [edi + 0xcc]
mov esi, dword [edi + 0x80]
mov dword [ebp - 0x220], ecx
jmp 0x412ac8
mov dword [ebp - 0x254], 0
mov dword [ebp - 0x258], 0
mov dword [ebp - 0x22c], 0
jmp 0x412a45