Function at 0x4182c3
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffa64
xor eax, eax
xor edx, edx
mov ecx, dword [0x45550c]
push ebx
push esi
push edi
lea edi, [ebp - 0x5c]
mov dword [ebp - 0x14], 0x10
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x34], ecx
mov ecx, 8
mov esi, 0x455510
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x7c]
mov ecx, 8
mov esi, 0x455530
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x94]
mov ecx, 6
mov esi, 0x455550
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0xac]
mov ecx, 6
mov esi, 0x455568
rep movsd dword es:[edi], dword [esi]
xor eax, eax
xor edx, edx
mov dword [ebp - 0xb0], eax
xor ecx, ecx
mov eax, dword [0x4a9450]
mov dword [ebp - 0xb4], edx
mov dword [ebp - 0xb8], ecx
cmp eax, 0xa
jb 0x4179c0
mov eax, 1
jmp 0x419a4c
xor edx, edx
mov edi, eax
mov dword [0x4a9524], edx
lea eax, [ebp - 0x2b0]
inc dword [0x4a9450]
xor ebx, ebx
mov dword [ebp - 0xc4], eax
xor esi, esi
mov eax, dword [ebp - 0xc4]
cmp ebx, esi
sete dl
and edx, 1
mov dword [ebp - 0x550], edx
fild dword [ebp - 0x550]
fstp qword [eax]
inc esi
add eax, 8
cmp esi, 4
jl 0x4179e6
inc ebx
add dword [ebp - 0xc4], 0x20
cmp ebx, 4
jl 0x4179de
call fcn.00401580
movzx ecx, ax
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
cmp eax, 0x200
jbe 0x417a31
mov eax, 1
jmp 0x419a4c
mov edx, edi
add edx, edx
lea edx, [edx + edx*2]
lea ecx, [edx*8 + 0x4f173c]
mov dword [ebp - 0xc4], ecx
jmp 0x419781
lea eax, [ebp - 0x18]
lea edx, [ebp - 0x10]
push eax
push edx
lea ecx, [ebp - 0xc]
lea eax, [ebp - 8]
push ecx
push eax
mov edx, dword [ebp + 8]
push edx
call fcn.00415558
add esp, 0x14
mov ecx, dword [ebp - 8]
cmp ecx, 0x8602
jg 0x417d0f
je 0x418ad3
cmp ecx, 0x118
jg 0x417bc2
je 0x4182d7
cmp ecx, 0x2e
jg 0x417b4c
je 0x418117
cmp ecx, 0x27
ja case.0x417f40.61444
jmp dword [ecx*4 + 0x417aac]
add ecx, 0xffffff00
cmp ecx, 0x17
ja case.0x417f40.61444
jmp dword [ecx*4 + 0x417b62]
cmp ecx, 0x7200
jg 0x417c6e
je 0x41880c
cmp ecx, 0x144
jg 0x417c29
je 0x41864b
cmp ecx, 0x13b
jg 0x417c11
je 0x4185fe
sub ecx, 0x123
je case.0x417e3b.50712
sub ecx, 0xe
je case.0x417aa5.11
dec ecx
je 0x4185f1
jmp case.0x417f40.61444
sub ecx, 0x142
je 0x41861b
dec ecx
je 0x418633
jmp case.0x417f40.61444
cmp ecx, 0x201
jg 0x417c51
je case.0x417f40.61447
sub ecx, 0x14a
je 0x4186b1
sub ecx, 0x46
je 0x418779
jmp case.0x417f40.61444
sub ecx, 0x202
je case.0x417f40.61448
sub ecx, 0x6e0e
je 0x418796
jmp case.0x417f40.61444
cmp ecx, 0x828d
jg 0x417cca
je 0x418956
cmp ecx, 0x7303
jg 0x417cad
je 0x41885c
sub ecx, 0x7201
je 0x41881c
sub ecx, 0x20
je 0x41882c
sub ecx, 0x2f
je 0x41883c
jmp case.0x417f40.61444
sub ecx, 0x7313
je 0x41889d
sub ecx, 0xf6a
je 0x41893c
jmp case.0x417f40.61444
cmp ecx, 0x829a
jg 0x417cf2
je 0x418aa0
sub ecx, 0x828e
je 0x418983
sub ecx, 2
je 0x418a76
jmp case.0x417f40.61444
sub ecx, 0x829d
je 0x418abe
sub ecx, 0x362
je 0x418c1a
jmp case.0x417f40.61444
cmp ecx, 0xc61e
jg 0x417e5a
je 0x41946b
cmp ecx, 0xb4c7
jg 0x417dd2
je 0x418db5
cmp ecx, 0x920a
jg 0x417d92
je 0x418cb2
cmp ecx, 0x8773
jg 0x417d75
je 0x418c83
sub ecx, 0x8603
je 0x418b0f
sub ecx, 3
je 0x418c06
sub ecx, 0x163
je 0x418c2d
jmp case.0x417f40.61444
sub ecx, 0x8825
je 0x418c58
sub ecx, 0x8dd
je 0x418ca3
jmp case.0x417f40.61444
cmp ecx, 0xa010
jg 0x417dba
je 0x418d34
sub ecx, 0x9211
je 0x418cc7
sub ecx, 7
je 0x418cdb
jmp case.0x417f40.61444
sub ecx, 0xb4c2
je 0x418dd3
dec ecx
je 0x418d88
jmp case.0x417f40.61444
cmp ecx, 0xc617
jg 0x417e2c
je 0x419288
cmp ecx, 0xc612
jg 0x417e12
je 0x419100
add ecx, 0xffff3aea
sub ecx, 2
jb 0x418fc6
sub ecx, 2
je 0x419070
dec ecx
je 0x419094
jmp case.0x417f40.61444
sub ecx, 0xc614
je 0x419153
sub ecx, 2
je 0x4191c4
jmp case.0x417f40.61444
add ecx, 0xffff39e8
cmp ecx, 5
ja case.0x417f40.61444
jmp dword [ecx*4 + 0x417e42]
cmp ecx, 0xf001
jg 0x417f23
je case.0x417b5b.256
cmp ecx, 0xc640
jg 0x417ee0
je 0x419641
add ecx, 0xffff39df
cmp ecx, 0x13
ja case.0x417f40.61444
jmp dword [ecx*4 + 0x417e90]
cmp ecx, 0xc68f
jg 0x417f06
je 0x418c83
sub ecx, 0xc68d
je 0x419655
dec ecx
je 0x4196a6
jmp case.0x417f40.61444
sub ecx, 0xc741
je 0x4196e6
sub ecx, 0x28bf
je 0x418174
jmp case.0x417f40.61444
cmp ecx, 0xf00a
jg 0x417f63
je 0x4192fd
add ecx, 0xffff0ffe
cmp ecx, 6
ja case.0x417f40.61444
jmp dword [ecx*4 + 0x417f47]
cmp ecx, 0xfd09
jg 0x417f8e
je 0x4189b9
sub ecx, 0xf00e
je 0x4184c3
sub ecx, 0xcf6
je 0x4196fa
jmp case.0x417f40.61444
sub ecx, 0xfe00
je 0x418a76
sub ecx, 2
je 0x41974f
jmp case.0x417f40.61444
call fcn.00401580
movzx eax, ax
mov dword [0x4a9534], eax
jmp case.0x417f40.61444
call fcn.00401580
movzx edx, ax
mov dword [0x4a9530], edx
jmp case.0x417f40.61444
call fcn.00401580
movzx ecx, ax
add dword [0x4a9534], ecx
jmp case.0x417f40.61444
call fcn.00401580
movzx esi, ax
test esi, esi
je case.0x417f40.61444
mov dword [0x4a951c], esi
jmp case.0x417f40.61444
mov eax, dword [ebp - 0xc]
cmp eax, 3
jne case.0x417f40.61444
mov edx, dword [ebp - 0x10]
cmp edx, 1
jne case.0x417f40.61444
call fcn.00401580
movzx ecx, ax
mov dword [ebp - 0x554], ecx
fild dword [ebp - 0x554]
fmul dword [0x419a54]
mov eax, dword [ebp - 8]
sub eax, 0x11
add eax, eax
fstp dword [eax*4 + 0x4cb684]
jmp case.0x417f40.61444
mov edx, dword [ebp - 0xc]
cmp edx, 3
jne case.0x417f40.61444
call fcn.00401580
movzx ecx, ax
mov dword [ebp - 0x558], ecx
fild dword [ebp - 0x558]
fstp dword [0x4a9400]
jmp case.0x417f40.61444
call fcn.00401580
mov edx, dword [ebp - 8]
mov word [edx*2 + 0x4a9528], ax
mov ax, word [0x4a9562]
mov word [0x4a9566], ax
jmp case.0x417f40.61444
call fcn.00401580
movzx ecx, ax
mov dword [ebp - 0x55c], ecx
fild dword [ebp - 0x55c]
mov eax, dword [ebp - 8]
fstp dword [eax*4 + 0x4cb5f4]
jmp case.0x417f40.61444
mov edx, dword [ebp - 0x10]
cmp edx, 0x32
jb case.0x417f40.61444
fld dword [0x4cb684]
fcomp dword [0x419a58]
fnstsw ax
sahf
jne case.0x417f40.61444
push 1
push 0xc
mov edx, dword [0x4a9094]
push edx
call fcn.00425620
add esp, 0xc
xor ecx, ecx
mov dword [ebp - 0x24], ecx
mov edi, 0x4cb684
call fcn.00401580
movzx eax, ax
mov dword [ebp - 0x560], eax
fild dword [ebp - 0x560]
fstp dword [edi]
inc dword [ebp - 0x24]
add edi, 4
mov edx, dword [ebp - 0x24]
cmp edx, 3
jl 0x4180ee
jmp case.0x417f40.61444
mov ecx, dword [ebp - 0xc]
cmp ecx, 7
jne case.0x417f40.61444
mov eax, dword [0x4a9094]
push eax
call fcn.00448c18
pop ecx
cmp eax, 0xff
jne case.0x417f40.61444
mov edx, dword [0x4a9094]
push edx
call fcn.00448c18
pop ecx
cmp eax, 0xd8
jne case.0x417f40.61444
mov ecx, dword [0x4a9094]
push ecx
call fcn.0042576c
pop ecx
add eax, 0xfffffffe
mov dword [0x4a941c], eax
mov eax, dword [ebp - 0x10]
mov dword [0x4a9438], eax
jmp case.0x417f40.61444
push 0
call fcn.00401608
mov edx, dword [ebp + 8]
add eax, edx
push eax
mov ecx, dword [0x4a9094]
push ecx
call fcn.00425620
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
call fcn.0041792c
pop ecx
jmp case.0x417f40.61444
mov edx, dword [ebp - 0xc]
push edx
call fcn.00401634
pop ecx
mov ecx, dword [ebp - 0xc4]
mov dword [ecx], eax
jmp case.0x417f40.61444
mov eax, dword [ebp - 0xc]
push eax
call fcn.00401634
pop ecx
mov edx, dword [ebp - 0xc4]
mov dword [edx + 4], eax
jmp case.0x417f40.61444
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0x10]
and ecx, 7
mov dword [eax + 0x1c], ecx
mov edx, dword [ebp - 0xc]
push edx
call fcn.00401634
pop ecx
cmp eax, 0x20
mov ecx, dword [ebp - 0xc4]
mov dword [ecx + 8], eax
jle 0x418202
mov edx, dword [ebp - 0xc4]
mov dword [edx + 8], 8
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ecx + 8]
mov edx, dword [0x4a9458]
cmp eax, edx
jbe case.0x417f40.61444
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ecx + 8]
mov dword [0x4a9458], eax
jmp case.0x417f40.61444
xor edx, edx
mov dword [0x4a9528], edx
call fcn.00401608
test eax, eax
je 0x418244
mov ecx, 0x18
jmp 0x418249
mov ecx, 0x50
mov dword [0x4a9510], ecx
jmp case.0x417f40.61444
mov eax, dword [ebp - 0xc]
push eax
call fcn.00401634
pop ecx
mov edx, dword [ebp - 0xc4]
mov dword [edx + 0xc], eax
jmp case.0x417f40.61444
call fcn.00401580
movzx eax, ax
mov edx, dword [ebp - 0xc4]
mov dword [edx + 0x10], eax
jmp case.0x417f40.61444
mov ecx, dword [0x4a9094]
push ecx
push 1
push pe_nt_image_headers32
push 0x4a90f5
call fcn.004256d0
add esp, 0x10
jmp case.0x417f40.61444
mov eax, dword [0x4a9094]
push eax
push 0x40
push 0x4a92f5
call fcn.00425728
add esp, 0xc
jmp case.0x417f40.61444
mov edx, dword [0x4a9094]
push edx
push 0x40
push 0x4a9335
call fcn.00425728
add esp, 0xc
jmp case.0x417f40.61444
mov ecx, dword [ebp - 0xc]
cmp ecx, 4
jne case.0x417f40.61444
mov dword [0x4eb70c], 0x407568
mov dword [0x4a9510], 0x2008
call fcn.00401608
mov ecx, dword [ebp - 0xc4]
mov edx, dword [ebp + 8]
add eax, edx
mov dword [ecx + 0x14], eax
mov eax, dword [ebp - 0xc4]
mov eax, dword [eax + 8]
test eax, eax
jne case.0x417f40.61444
mov edx, dword [ebp - 0xc4]
mov ecx, dword [edx + 0x14]
test ecx, ecx
jle case.0x417f40.61444
push 0
mov eax, dword [ebp - 0xc4]
mov edx, dword [eax + 0x14]
push edx
mov ecx, dword [0x4a9094]
push ecx
call fcn.00425620
add esp, 0xc
push 1
lea eax, [ebp - 0x54c]
push eax
call fcn.00402ac8
add esp, 8
test eax, eax
je case.0x417f40.61444
mov edx, dword [ebp - 0xc4]
mov dword [edx + 0xc], 6
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0x540]
mov dword [ecx], eax
mov edx, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0x544]
mov dword [edx + 4], ecx
mov eax, dword [ebp - 0xc4]
mov edx, dword [ebp - 0x548]
mov dword [eax + 8], edx
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0x53c]
mov dword [ecx + 0x1c], eax
mov edx, dword [ebp - 0x538]
test edx, edx
jne 0x4183cc
test byte [ebp - 0x53c], 1
jne 0x4183cc
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0x53c]
imul eax, dword [ecx]
mov dword [ecx], eax
mov edx, dword [ebp - 0xc4]
mov eax, dword [ebp - 0xc4]
mov ecx, dword [edx]
mov edx, dword [eax + 4]
shl edx, 2
mov eax, dword [ebp - 0x53c]
cmp ecx, edx
setg cl
not eax
and ecx, 1
and ecx, eax
je 0x418418
mov edx, dword [ebp - 0xc4]
mov ecx, 2
mov eax, edx
push eax
mov eax, dword [eax]
cdq
idiv ecx
pop ecx
mov dword [ecx], eax
mov eax, dword [ebp - 0xc4]
mov edx, dword [eax + 4]
add edx, edx
mov dword [eax + 4], edx
movsx esi, word [0x4a909c]
mov eax, dword [ebp - 0xc4]
mov edx, dword [eax + 0x14]
add edx, 0xc
push edx
call fcn.00419a78
pop ecx
mov word [0x4a909c], si
jmp case.0x417f40.61444
call fcn.00401580
mov word [ebp - 0xbe], ax
movzx ecx, word [ebp - 0xbe]
and ecx, 7
mov edx, dword [ebp - 0xc4]
movsx eax, byte [ecx + str.50132467]
sub eax, 0x30
mov dword [edx + 0x18], eax
cmp word [ebp - 0xbe], 1
jb case.0x417f40.61444
cmp word [ebp - 0xbe], 8
ja case.0x417f40.61444
movzx ecx, word [ebp - 0xbe]
mov dword [0x4a9524], ecx
jmp case.0x417f40.61444
mov eax, dword [ebp - 0xc]
push eax
call fcn.00401634
mov edx, dword [ebp - 0xc4]
pop ecx
and eax, 7
mov dword [edx + 0x1c], eax
jmp case.0x417f40.61444
call fcn.00401608
mov ecx, dword [ebp - 0xc4]
mov dword [ecx + 0x20], eax
jmp case.0x417f40.61444
xor eax, eax
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0xc]
push edx
call fcn.00401634
pop ecx
mov dword [ebp - 0x568], eax
xor ecx, ecx
mov dword [ebp - 0x564], ecx
fild qword [ebp - 0x568]
mov eax, 4
mov edx, dword [ebp - 0x24]
sub eax, edx
mov ecx, 3
cdq
idiv ecx
fstp dword [edx*4 + 0x4cb684]
inc dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
cmp eax, 3
jl 0x4184c8
jmp case.0x417f40.61444
mov eax, dword [0x4a9094]
lea edx, [ebp - 0x120]
push eax
push 0x40
push edx
call fcn.00425728
add esp, 0xc
lea ecx, [ebp - 0x120]
push 5
push str.Adobe
push ecx
call fcn.00446930
add esp, 0xc
test eax, eax
je 0x4185e5
push 5
push str.dcraw
lea eax, [ebp - 0x120]
push eax
call fcn.00446930
add esp, 0xc
test eax, eax
je 0x4185e5
push 5
push str.UFRaw
lea edx, [ebp - 0x120]
push edx
call fcn.00446930
add esp, 0xc
test eax, eax
je 0x4185e5
push 6
push str.Bibble
lea ecx, [ebp - 0x120]
push ecx
call fcn.00446930
add esp, 0xc
test eax, eax
je 0x4185e5
push 0xa
push str.Nikon_Scan
lea eax, [ebp - 0x120]
push eax
call fcn.00446930
add esp, 0xc
test eax, eax
je 0x4185e5
lea eax, [ebp - 0x120]
mov edx, str.Digital_Photo_Professional
mov cl, byte [eax]
cmp cl, byte [edx]
jne case.0x417f40.61444
test cl, cl
je 0x4185df
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne case.0x417f40.61444
add eax, 2
add edx, 2
test cl, cl
jne 0x4185bb
jne case.0x417f40.61444
xor eax, eax
mov dword [0x4a9478], eax
jmp case.0x417f40.61444
push 0
call fcn.00416c74
pop ecx
jmp case.0x417f40.61444
mov edx, dword [0x4a9094]
push edx
push 1
push 0x40
push 0x4a93b5
call fcn.004256d0
add esp, 0x10
jmp case.0x417f40.61444
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00401634
pop ecx
mov edx, dword [ebp - 0xc4]
mov dword [edx + 0x24], eax
jmp case.0x417f40.61444
mov eax, dword [ebp - 0xc]
push eax
call fcn.00401634
pop ecx
mov ecx, dword [ebp - 0xc4]
mov dword [ecx + 0x28], eax
jmp case.0x417f40.61444
mov eax, dword [ebp - 0x10]
cmp eax, 1
jbe 0x418662
mov edx, dword [0x4a9094]
push edx
call fcn.0042576c
pop ecx
jmp 0x418667
call fcn.00401608
mov ecx, dword [ebp - 0xc4]
mov dword [ecx + 0x14], eax
mov eax, dword [ebp - 0x10]
cmp eax, 1
jne 0x41868c
mov edx, dword [ebp - 0xc4]
xor ecx, ecx
mov dword [edx + 0x28], ecx
mov eax, dword [ebp - 0xc4]
mov dword [eax + 0x24], ecx
mov edx, dword [ebp - 0x10]
cmp edx, 4
jne case.0x417f40.61444
mov dword [0x4eb70c], 0x406d20
mov dword [0x4a9478], 5
jmp case.0x417f40.61444
mov eax, 0x4a9335
mov edx, 0x45d058
mov cl, byte [eax]
cmp cl, byte [edx]
jne 0x418769
test cl, cl
je 0x4186df
mov cl, byte [eax + 1]
cmp cl, byte [edx + 1]
jne 0x418769
add eax, 2
add edx, 2
test cl, cl
jne 0x4186bb
jne 0x418769
mov eax, dword [ebp - 0xc4]
mov edx, dword [eax]
cmp edx, 0xf20
jne 0x418769
mov dword [0x4eb70c], 0x4098b0
call fcn.00401608
mov ecx, dword [ebp + 8]
add eax, ecx
add dword [ebp - 0xc4], 0x30
mov dword [0x4a9418], eax
jmp case.0x417f40.61444
mov eax, dword [0x4a9094]
push eax
call fcn.0042576c
pop ecx
mov esi, eax
push 0
call fcn.00401608
mov edx, dword [ebp + 8]
add eax, edx
push eax
mov eax, dword [0x4a9094]
push eax
call fcn.00425620
add esp, 0xc
mov ecx, dword [ebp + 8]
push ecx
call fcn.0041792c
pop ecx
test eax, eax
jne case.0x417f40.61444
push 0
add esi, 4
push esi
mov eax, dword [0x4a9094]
push eax
call fcn.00425620
add esp, 0xc
mov edx, dword [ebp - 0x10]
add dword [ebp - 0x10], 0xffffffff
test edx, edx
jne 0x41871a
jmp case.0x417f40.61444
mov esi, str.Sarnoff
mov edi, 0x4a92f5
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [0x4a9464], 0xfff
jmp case.0x417f40.61444
xor edx, edx
lea edi, [ebp - 0xa8]
mov dword [ebp - 0x24], edx
call fcn.00401580
movzx eax, ax
sar eax, 2
and eax, 0xfff
mov dword [edi], eax
inc dword [ebp - 0x24]
add edi, 4
mov edx, dword [ebp - 0x24]
cmp edx, 4
jl 0x4187a1
xor esi, esi
lea edi, [ebp - 0xac]
mov ebx, dword [edi]
lea edx, [edi + 4]
inc ebx
mov dword [ebp - 0xc8], edx
lea eax, [ebx*2 + 0x4ab5ea]
jmp 0x4187f2
mov dx, 1
mov ecx, esi
shl dx, cl
add dx, word [eax]
inc ebx
mov word [eax + 2], dx
add eax, 2
mov ecx, dword [ebp - 0xc8]
mov edx, dword [ecx]
cmp edx, ebx
jae 0x4187de
inc esi
add edi, 4
cmp esi, 5
jl 0x4187c9
jmp case.0x417f40.61444
call fcn.00401608
mov dword [ebp - 0xb0], eax
jmp case.0x417f40.61444
call fcn.00401608
mov dword [ebp - 0xb4], eax
jmp case.0x417f40.61444
call fcn.00401608
mov dword [ebp - 0xb8], eax
jmp case.0x417f40.61444
mov eax, dword [0x4a9094]
push eax
call fcn.0042576c
pop ecx
push eax
call fcn.0041a430
pop ecx
xor ecx, ecx
mov dword [0x4a952c], ecx
jmp case.0x417f40.61444
xor eax, eax
mov dword [ebp - 0x24], eax
call fcn.00401580
movzx edx, ax
mov dword [ebp - 0x56c], edx
fild dword [ebp - 0x56c]
mov ecx, dword [ebp - 0x24]
cmp ecx, 2
setl al
and eax, 1
mov edx, dword [ebp - 0x24]
xor eax, edx
fstp dword [eax*4 + 0x4cb684]
inc dword [ebp - 0x24]
mov ecx, dword [ebp - 0x24]
cmp ecx, 4
jl 0x418861
jmp case.0x417f40.61444
xor eax, eax
mov edi, 0x4cb684
mov dword [ebp - 0x24], eax
call fcn.00401580
movzx eax, ax
mov dword [ebp - 0x570], eax
fild dword [ebp - 0x570]
fstp dword [edi]
inc dword [ebp - 0x24]
add edi, 4
mov edx, dword [ebp - 0x24]
cmp edx, 4
jl 0x4188a7
fld dword [0x4cb688]
fcomp dword [0x419a5c]
fnstsw ax
sahf
jne 0x4188ed
fld dword [0x4cb68c]
fcomp dword [0x419a5c]
fnstsw ax
sahf
je 0x4188f1
xor esi, esi
jmp 0x4188f6
mov esi, 1
add esi, esi
fld dword [esi*4 + 0x4cb684]
fadd dword [esi*4 + 0x4cb688]
fstp dword [esi*4 + 0x4cb684]
fld dword [esi*4 + 0x4cb684]
fsub dword [esi*4 + 0x4cb688]
fstp dword [esi*4 + 0x4cb688]
fld dword [esi*4 + 0x4cb684]
fsub dword [esi*4 + 0x4cb688]
fstp dword [esi*4 + 0x4cb684]
jmp case.0x417f40.61444
mov eax, dword [0x4a9094]
push eax
push 0x40
push 0x4a9375
call fcn.00425728
add esp, 0xc
jmp case.0x417f40.61444
call fcn.00401580
cmp ax, 6
jne case.0x417f40.61444
call fcn.00401580
cmp ax, 6
jne case.0x417f40.61444
mov dword [0x4a951c], 9
jmp case.0x417f40.61444
mov edx, dword [0x4a951c]
cmp edx, 9
jne 0x4189b9
xor ecx, ecx
mov edi, 0x4a90a8
mov dword [ebp - 0x24], ecx
mov eax, dword [0x4a9094]
push eax
call fcn.00448c18
pop ecx
and al, 3
mov byte [edi], al
inc dword [ebp - 0x24]
inc edi
mov edx, dword [ebp - 0x24]
cmp edx, 0x24
jl 0x418998
jmp case.0x417f40.61444
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x14], ecx
cmp ecx, 0x10
jbe 0x4189cb
mov dword [ebp - 0x14], 0x10
mov eax, dword [0x4a9094]
push eax
lea eax, [ebp - 0x130]
mov edx, dword [ebp - 0x14]
push edx
push 1
push eax
call fcn.004256d0
add esp, 0x10
xor edx, edx
mov esi, edx
mov dword [ebp - 0x20], edx
mov dword [0x4a9520], edx
lea edi, [ebp + esi - 0x130]
jmp 0x418a25
mov cl, byte [edi]
mov eax, 1
shl eax, cl
mov edx, dword [ebp - 0x20]
and eax, edx
mov edx, 1
cmp eax, 1
sbb eax, eax
inc esi
neg eax
add dword [0x4a9520], eax
mov cl, byte [edi]
shl edx, cl
or dword [ebp - 0x20], edx
inc edi
mov eax, dword [ebp - 0x14]
cmp esi, eax
jae 0x418a37
mov edx, dword [0x4a9520]
cmp edx, 4
jb 0x4189fc
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x38
jne 0x418a52
push 3
push 0x45d06a
lea eax, [ebp - 0x34]
push eax
call fcn.004466c0
add esp, 0xc
mov edx, dword [ebp - 0x20]
cmp edx, 0x3a
jne 0x419206
push 4
push 0x45d06e
lea ecx, [ebp - 0x34]
push ecx
call fcn.004466c0
add esp, 0xc
jmp 0x419206
push 0
call fcn.00401608
mov edx, dword [ebp + 8]
add eax, edx
push eax
mov eax, dword [0x4a9094]
push eax
call fcn.00425620
add esp, 0xc
mov ecx, dword [ebp + 8]
push ecx
call fcn.00417634
pop ecx
jmp case.0x417f40.61444
mov eax, dword [ebp - 0xc]
push eax
call fcn.00401660
fst dword [0x4a9404]
mov edx, dword [ebp - 0xc4]
pop ecx
fstp dword [edx + 0x2c]
jmp case.0x417f40.61444
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00401660
fstp dword [0x4a9408]
pop ecx
jmp case.0x417f40.61444
xor eax, eax
mov dword [ebp - 0x24], eax
call fcn.00401580
movzx edx, ax
mov dword [ebp - 0x574], edx
fild dword [ebp - 0x574]
fdivr dword [0x419a60]
mov ecx, dword [ebp - 0x24]
xor ecx, 1
fstp dword [ecx*4 + 0x4cb684]
inc dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
cmp eax, 4
jl 0x418ad8
jmp case.0x417f40.61444
mov edx, dword [0x4a9094]
push edx
push 7
push 1
lea ecx, [ebp - 0x120]
push ecx
call fcn.004256d0
add esp, 0x10
lea eax, [ebp - 0x120]
push 6
push str.MATRIX
push eax
call fcn.00446930
add esp, 0xc
test eax, eax
jne case.0x417f40.61444
xor edx, edx
mov dword [0x4a9520], 4
mov esi, edx
mov dword [0x4a946c], edx
mov eax, esi
add eax, eax
cmp esi, 3
lea edi, [eax*8 + 0x4cb6d4]
jge case.0x417f40.61444
xor eax, eax
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x24]
mov edx, esi
xor ecx, 1
mov eax, dword [0x4a9094]
shl ecx, 2
shl edx, 4
add edx, ecx
add edx, 0x4cb6d4
push edx
push 0x45d07a
push eax
call fcn.004257f0
add esp, 0xc
inc dword [ebp - 0x24]
mov edx, dword [ebp - 0x24]
cmp edx, 4
jl 0x418b74
mov ecx, dword [0x45418c]
test ecx, ecx
je 0x418bf4
xor eax, eax
xor edx, edx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov eax, edi
mov dword [ebp - 0x24], edx
fld dword [eax]
fadd qword [ebp - 0x3c]
fstp qword [ebp - 0x3c]
inc dword [ebp - 0x24]
add eax, 4
mov edx, dword [ebp - 0x24]
cmp edx, 4
jl 0x418bc2
xor ecx, ecx
mov eax, edi
mov dword [ebp - 0x24], ecx
fld dword [eax]
fdiv qword [ebp - 0x3c]
fstp dword [eax]
inc dword [ebp - 0x24]
add eax, 4
mov edx, dword [ebp - 0x24]
cmp edx, 4
jl 0x418bdf
inc esi
add edi, 0x10
cmp esi, 3
jl 0x418b6f
jmp case.0x417f40.61444
mov ecx, dword [0x4a9094]
push ecx
call fcn.0042576c
pop ecx
push eax
call fcn.004171a4
pop ecx
mov esi, 0x45d07d
mov edi, 0x4a92f5
mov eax, edi
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
jmp case.0x417f40.61444
push 0
call fcn.00401608
mov edx, dword [ebp + 8]
add eax, edx
push eax
mov ecx, dword [0x4a9094]
push ecx
call fcn.00425620
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
call fcn.00416d34
pop ecx
jmp case.0x417f40.61444
push 0
call fcn.00401608
mov edx, dword [ebp + 8]
add eax, edx
push eax
mov ecx, dword [0x4a9094]
push ecx
call fcn.00425620
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
call fcn.00416fc8
pop ecx
jmp case.0x417f40.61444
mov edx, dword [0x4a9094]
push edx
call fcn.0042576c
pop ecx
mov dword [0x4a9424], eax
mov ecx, dword [ebp - 0x10]
mov dword [0x4a9440], ecx
jmp case.0x417f40.61444
call fcn.00401608
mov dword [0x4a942c], eax
jmp case.0x417f40.61444
mov eax, dword [ebp - 0xc]
push eax
call fcn.00401660
fstp dword [0x4a940c]
pop ecx
jmp case.0x417f40.61444
mov edx, dword [ebp - 0xc]
push edx
call fcn.00401634
pop ecx
mov dword [0x4a9428], eax
jmp case.0x417f40.61444
xor ecx, ecx
mov esi, ecx
mov dword [0x4a946c], ecx
mov eax, esi
add eax, eax
cmp esi, 3
lea edi, [eax*8 + 0x4cb6d4]
jge case.0x417f40.61444
mov eax, dword [ebp - 0xc]
push eax
call fcn.00401660
pop ecx
xor edx, edx
fstp st(0)
mov dword [ebp - 0x24], edx
mov ebx, edi
mov eax, dword [ebp - 0xc]
push eax
call fcn.00401660
pop ecx
fstp dword [ebx]
inc dword [ebp - 0x24]
add ebx, 4
mov edx, dword [ebp - 0x24]
cmp edx, 3
jl 0x418d0c
inc esi
add edi, 0x10
cmp esi, 3
jl 0x418cf9
jmp case.0x417f40.61444
call fcn.00401608
mov dword [0x4a9414], eax
mov ecx, dword [ebp - 0xc4]
mov eax, dword [ecx + 0xc]
sub eax, 0x8002
je 0x418d5b
sub eax, 2
je 0x418d6a
dec eax
je 0x418d79
jmp case.0x417f40.61444
mov dword [0x4eb70c], 0x409b80
jmp case.0x417f40.61444
mov dword [0x4eb70c], 0x409e10
jmp case.0x417f40.61444
mov dword [0x4eb70c], 0x409f44
jmp case.0x417f40.61444
mov esi, 0x45d082
mov edi, 0x4a92f5
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edx, dword [0x4a9094]
push edx
call fcn.0042576c
pop ecx
mov dword [0x4a9418], eax
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x28], ecx
jmp case.0x417f40.61444
mov eax, dword [ebp - 0x28]
test eax, eax
je case.0x417f40.61444
push 1
push 0x26
mov edx, dword [0x4a9094]
push edx
call fcn.00425620
add esp, 0xc
push 1
push 0x28
mov ecx, dword [0x4a9094]
push ecx
call fcn.00425620
add esp, 0xc
call fcn.00401608
mov dword [0x4a952c], eax
call fcn.00401608
mov dword [0x4a9528], eax
call fcn.00401608
and eax, 7
mov dword [0x4a953c], eax
call fcn.00401608
mov ecx, dword [0x4a953c]
mov edx, dword [0x4a952c]
sub edx, ecx
and eax, 7
sub edx, eax
mov dword [0x4a9534], edx
call fcn.00401608
and eax, 7
mov dword [0x4a9538], eax
call fcn.00401608
mov ecx, dword [0x4a9538]
mov edx, dword [0x4a9528]
sub edx, ecx
and eax, 7
sub edx, eax
mov dword [0x4a9530], edx
mov eax, dword [0x4a952c]
cmp eax, 0x1c5e
jne 0x418e7a
mov dword [0x4a9530], 0x1544
mov dword [0x4a9534], 0x1c4c
mov dword [0x4a953c], 7
push 1
push 0x34
mov eax, dword [0x4a9094]
push eax
call fcn.00425620
add esp, 0xc
xor edx, edx
mov dword [ebp - 0x24], edx
mov edi, 0x4cb684
push 0xb
call fcn.00401660
pop ecx
fstp dword [edi]
inc dword [ebp - 0x24]
add edi, 4
mov eax, dword [ebp - 0x24]
cmp eax, 3
jl 0x418e96
push 1
push 0x72
mov edx, dword [0x4a9094]
push edx
call fcn.00425620
add esp, 0xc
call fcn.00401580
movzx ecx, ax
sar ecx, 7
mov eax, ecx
add eax, eax
lea eax, [eax + eax*4]
lea eax, [eax + eax*8]
mov dword [0x4a9514], eax
mov edx, dword [0x4a9534]
imul edx, dword [0x4a9530]
mov ecx, edx
add ecx, ecx
lea ecx, [ecx + ecx*2]
mov eax, dword [ebp - 0x28]
cmp ecx, eax
jne 0x418f61
mov eax, dword [0x4a9514]
mov ecx, 0xb4
xor edx, edx
div ecx
cmp edx, 0x5a
jne 0x418f33
mov eax, dword [0x4a9530]
add dword [0x4a9534], eax
mov edx, dword [0x4a9534]
mov ecx, dword [0x4a9530]
sub edx, ecx
mov dword [0x4a9530], edx
mov eax, dword [0x4a9530]
sub dword [0x4a9534], eax
mov edx, dword [0x4a9534]
xor eax, eax
mov dword [0x4a952c], edx
mov ecx, dword [0x4a9530]
mov dword [0x4a9528], ecx
mov dword [0x4a9514], eax
mov dword [0x4a951c], eax
mov dword [0x4a9538], eax
mov dword [0x4a953c], eax
mov eax, dword [0x4a9530]
mov ecx, 0xf4240
imul dword [0x4a9534]
cdq
idiv ecx
push eax
push str.Ixpress__d_Mp
push 0x4a9335
call fcn.00449d00
add esp, 0xc
mov dword [0x4eb70c], 0x406ed8
mov eax, dword [0x4a951c]
test eax, eax
je 0x418fb7
test byte [0x4a953c], 1
je 0x418fad
mov dword [0x4a951c], 0x61616161
mov dword [0x4eb70c], fcn.00406c74
mov dword [0x4a9464], 0xffff
jmp case.0x417f40.61444
mov edx, dword [ebp - 0x10]
push edx
call fcn.004456b8
pop ecx
mov dword [ebp - 0x2c], eax
test eax, eax
je case.0x417f40.61444
mov edx, dword [0x4a9094]
push edx
mov ecx, dword [ebp - 0x10]
push ecx
push 1
mov eax, dword [ebp - 0x2c]
push eax
call fcn.004256d0
add esp, 0x10
mov edx, dword [ebp - 0x2c]
dec edx
mov dword [ebp - 0x30], edx
jmp 0x41904b
push 8
push str.Neutral
inc dword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
push ecx
call fcn.00446930
add esp, 0xc
test eax, eax
jne 0x41903a
push 0x4cb68c
push 0x4cb688
push 0x4cb684
push str._f__f__f
mov eax, dword [ebp - 0x30]
add eax, 8
push eax
call fcn.00449d7c
add esp, 0x14
push 0xa
mov edx, dword [ebp - 0x30]
push edx
call fcn.00446810
add esp, 8
mov dword [ebp - 0x30], eax
mov ecx, dword [ebp - 0x30]
test ecx, ecx
je 0x419061
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x10]
add eax, edx
mov ecx, dword [ebp - 0x30]
cmp eax, ecx
ja 0x418ffd
mov eax, dword [ebp - 0x2c]
push eax
call fcn.004456c8
pop ecx
jmp case.0x417f40.61444
mov dl, byte [0x4a92f5]
test dl, dl
jne case.0x417f40.61444
mov esi, 0x45d0a9
mov edi, 0x4a92f5
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
jmp case.0x417f40.61444
movsx esi, word [0x4a909c]
mov eax, dword [0x4a9094]
push eax
call fcn.0042576c
pop ecx
mov ebx, eax
mov eax, dword [0x4a9450]
mov dword [ebp - 0x24], eax
call fcn.00401580
mov word [0x4a909c], ax
push 0
call fcn.00401580
call fcn.00401608
add eax, ebx
push eax
mov edx, dword [0x4a9094]
push edx
call fcn.00425620
add esp, 0xc
push ebx
call fcn.0041792c
pop ecx
mov dword [0x4a9464], 0xffff
mov ecx, dword [ebp - 0x24]
mov dword [0x4a9450], ecx
mov word [0x4a909c], si
jmp case.0x417f40.61444
xor eax, eax
mov dword [ebp - 0x24], eax
mov edx, dword [0x4a9094]
push edx
call fcn.00448c18
pop ecx
mov ecx, dword [0x4a947c]
shl ecx, 8
inc dword [ebp - 0x24]
add eax, ecx
mov dword [0x4a947c], eax
mov eax, dword [ebp - 0x24]
cmp eax, 4
jl 0x419105
mov dl, byte [0x4a92f5]
test dl, dl
jne 0x419144
mov esi, 0x45d0b4
mov edi, 0x4a92f5
mov eax, edi
movsd dword es:[edi], dword [esi]
mov dword [0x4a9478], 1
jmp case.0x417f40.61444
mov dl, byte [0x4a9335]
test dl, dl
jne case.0x417f40.61444
mov ecx, dword [0x4a9094]
push ecx
push 0x40
push 0x4a92f5
call fcn.00425728
add esp, 0xc
push 0x20
push 0x4a92f5
call fcn.00446810
add esp, 8
mov dword [ebp - 0x30], eax
test eax, eax
je case.0x417f40.61444
mov edx, dword [ebp - 0x30]
xor eax, eax
inc edx
or ecx, 0xffffffff
mov edi, edx
mov esi, 0x4a9335
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x30]
mov byte [eax], 0
jmp case.0x417f40.61444
mov edx, dword [0x4a951c]
cmp edx, 9
je case.0x417f40.61444
mov ecx, dword [ebp - 0x10]
cmp ecx, 4
jbe 0x4191e2
mov dword [ebp - 0x10], 4
mov eax, dword [ebp - 0x10]
mov dword [0x4a9520], eax
lea eax, [ebp - 0x34]
mov edx, dword [0x4a9094]
mov ecx, dword [0x4a9520]
push edx
push ecx
push 1
push eax
call fcn.004256d0
add esp, 0x10
xor edx, edx
lea edi, [ebp - 0x34]
mov dword [ebp - 0x24], edx
jmp 0x419222
mov al, byte [ebp - 0x24]
xor edx, edx
mov dl, byte [edi]
mov byte [ebp + edx - 0x230], al
inc dword [ebp - 0x24]
inc edi
mov ecx, dword [ebp - 0x24]
mov eax, dword [0x4a9520]
cmp ecx, eax
jb 0x419210
mov edx, dword [ebp - 0x24]
mov byte [edx + 0x4a90f0], 0
mov esi, 0x10
jmp 0x419268
mov eax, esi
xor edx, edx
div dword [ebp - 0x14]
xor ecx, ecx
xor eax, eax
mov cl, byte [ebp + edx - 0x130]
mov edx, dword [0x4a951c]
shl edx, 2
mov al, byte [ebp + ecx - 0x230]
or eax, edx
mov dword [0x4a951c], eax
mov ecx, esi
add esi, 0xffffffff
test ecx, ecx
jne 0x41923f
mov eax, dword [0x4a951c]
cmp eax, 1
sbb edx, edx
neg edx
sub dword [0x4a951c], edx
jmp case.0x417f40.61444
call fcn.00401580
cmp ax, 2
jne case.0x417f40.61444
mov dword [0x4a954c], 1
jmp case.0x417f40.61444
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.004175d8
pop ecx
jmp case.0x417f40.61444
call fcn.00401580
mov word [0x4a9568], ax
call fcn.00401580
mov word [0x4a956a], ax
movzx eax, word [0x4a9568]
movzx edx, word [0x4a956a]
imul edx
cmp eax, 0x1000
jle case.0x417f40.61444
mov cx, 1
mov word [0x4a956a], cx
mov word [0x4a9568], cx
jmp case.0x417f40.61444
mov eax, dword [ebp - 0x10]
xor edx, edx
mov dword [ebp - 0x57c], eax
mov dword [ebp - 0x578], edx
fild qword [ebp - 0x57c]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0044ee58
add esp, 8
fcomp dword [0x419a64]
fnstsw ax
sahf
jae 0x419354
mov edx, dword [ebp - 0x10]
xor ecx, ecx
mov dword [ebp - 0x584], edx
mov dword [ebp - 0x580], ecx
fild qword [ebp - 0x584]
add esp, 0xfffffff8
fstp qword [esp]
call fcn.0044ee58
add esp, 8
jmp 0x41935a
fld qword [0x419a68]
call fcn.0044d7fc
mov word [0x4a956a], ax
mov word [0x4a9568], ax
movzx edx, word [0x4a9568]
movzx ecx, word [0x4a956a]
imul edx, ecx
test edx, edx
jne 0x419390
mov ax, 1
mov word [0x4a956a], ax
mov word [0x4a9568], ax
xor edx, edx
mov edi, 0x4a956c
mov dword [ebp - 0x24], edx
jmp 0x4193b4
mov eax, dword [ebp - 0xc]
push eax
call fcn.00401660
pop ecx
call fcn.0044d7fc
mov word [edi], ax
inc dword [ebp - 0x24]
add edi, 2
movzx edx, word [0x4a9568]
movzx ecx, word [0x4a956a]
imul edx, ecx
mov eax, dword [ebp - 0x24]
cmp edx, eax
jg 0x41939c
xor edx, edx
mov dword [0x4a9460], edx
jmp case.0x417f40.61444
xor ecx, ecx
mov esi, ecx
mov dword [ebp - 0x588], ecx
fild dword [ebp - 0x588]
fstp qword [ebp - 0x3c]
jmp 0x4193ff
mov eax, dword [ebp - 0xc]
push eax
call fcn.00401660
fadd qword [ebp - 0x3c]
pop ecx
inc esi
fstp qword [ebp - 0x3c]
mov edx, dword [ebp - 0x10]
and edx, 0xffff
cmp edx, esi
ja 0x4193ee
mov eax, dword [ebp - 0x10]
xor edx, edx
mov dword [ebp - 0x590], eax
mov dword [ebp - 0x58c], edx
fild qword [ebp - 0x590]
fdivr qword [ebp - 0x3c]
fadd dword [0x419a70]
mov ecx, dword [0x4a9460]
xor eax, eax
mov dword [ebp - 0x598], ecx
mov dword [ebp - 0x594], eax
fild qword [ebp - 0x598]
faddp st(1)
call fcn.0044d7fc
mov dword [0x4a9460], eax
jmp case.0x417f40.61444
mov edx, dword [ebp - 0xc]
push edx
call fcn.00401634
pop ecx
mov dword [0x4a9464], eax
jmp case.0x417f40.61444
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00401660
fstp qword [0x4cb5fc]
pop ecx
mov eax, dword [ebp - 0xc]
push eax
call fcn.00401660
fdivr qword [0x4cb5fc]
fstp qword [0x4cb5fc]
pop ecx
jmp case.0x417f40.61444
xor edx, edx
lea edi, [ebp - 0x310]
mov dword [ebp - 0x24], edx
jmp 0x4194c2
xor ebx, ebx
mov esi, edi
mov eax, dword [ebp - 0xc]
push eax
call fcn.00401660
pop ecx
fstp qword [esi]
inc ebx
add esi, 8
cmp ebx, 3
jl 0x4194a7
inc dword [ebp - 0x24]
add edi, 0x18
mov edx, dword [ebp - 0x24]
mov ecx, dword [0x4a9520]
cmp edx, ecx
jb 0x4194a3
mov dword [ebp - 0x1c], 1
jmp case.0x417f40.61444
xor esi, esi
lea edi, [ebp - 0x2b0]
jmp 0x419521
xor eax, eax
mov dword [ebp - 0x24], eax
mov edx, edi
mov dword [ebp - 0xcc], edx
jmp 0x419510
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00401660
pop ecx
mov eax, dword [ebp - 0xcc]
fstp qword [eax]
inc dword [ebp - 0x24]
add dword [ebp - 0xcc], 8
mov edx, dword [ebp - 0x24]
mov ecx, dword [0x4a9520]
cmp edx, ecx
jb 0x4194f4
inc esi
add edi, 0x20
mov eax, dword [0x4a9520]
cmp esi, eax
jb 0x4194e5
jmp case.0x417f40.61444
xor edx, edx
lea edi, [ebp - 0x5c]
mov dword [ebp - 0x24], edx
jmp 0x41954b
mov eax, dword [ebp - 0xc]
push eax
call fcn.00401660
pop ecx
fstp qword [edi]
inc dword [ebp - 0x24]
add edi, 8
mov edx, dword [ebp - 0x24]
mov ecx, dword [0x4a9520]
cmp edx, ecx
jb 0x419539
jmp case.0x417f40.61444
xor eax, eax
lea edi, [ebp - 0x7c]
mov dword [ebp - 0x24], eax
jmp 0x419579
mov eax, dword [ebp - 0xc]
push eax
call fcn.00401660
pop ecx
fstp qword [edi]
inc dword [ebp - 0x24]
add edi, 8
mov edx, dword [ebp - 0x24]
mov ecx, dword [0x4a9520]
cmp edx, ecx
jb 0x419567
jmp case.0x417f40.61444
mov eax, dword [ebp - 0xc]
push eax
call fcn.00401660
pop ecx
fstp qword [ebp - 0x94]
mov edx, dword [ebp - 0xc]
push edx
call fcn.00401660
pop ecx
fstp qword [ebp - 0x8c]
fld dword [0x419a74]
fsub qword [ebp - 0x94]
xor ecx, ecx
lea eax, [ebp - 0x94]
mov edi, 0x454200
fsub qword [ebp - 0x8c]
fstp qword [ebp - 0x84]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xcc]
fld dword [edi]
fdivr qword [eax]
fstp qword [eax]
inc dword [ebp - 0x24]
add dword [ebp - 0xcc], 8
mov edx, dword [ebp - 0x24]
add edi, 4
cmp edx, 3
jl 0x4195d9
jmp case.0x417f40.61444
mov ecx, dword [0x4a947c]
test ecx, ecx
jne case.0x417f40.61444
call fcn.00401608
mov ebx, eax
mov eax, dword [ebp + 8]
add ebx, eax
push ebx
call fcn.0041a430
pop ecx
push 0
push ebx
mov edx, dword [0x4a9094]
push edx
call fcn.00425620
add esp, 0xc
mov ecx, dword [ebp + 8]
push ecx
call fcn.0041792c
pop ecx
jmp case.0x417f40.61444
push 3
push 0x4cb5ec
call fcn.004017b4
add esp, 8
jmp case.0x417f40.61444
mov eax, dword [ebp - 0xc]
push eax
call fcn.00401634
pop ecx
mov dword [0x4a9538], eax
mov edx, dword [ebp - 0xc]
push edx
call fcn.00401634
pop ecx
mov dword [0x4a953c], eax
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00401634
pop ecx
mov edx, dword [0x4a9538]
sub eax, edx
mov dword [0x4a9530], eax
mov eax, dword [ebp - 0xc]
push eax
call fcn.00401634
pop ecx
mov ecx, dword [0x4a953c]
sub eax, ecx
mov dword [0x4a9534], eax
jmp case.0x417f40.61444
mov dword [ebp - 0xcc], 0x4cb604
xor esi, esi
jmp 0x4196ce
mov eax, dword [ebp - 0xc]
push eax
call fcn.00401634
pop ecx
mov edx, dword [ebp - 0xcc]
mov dword [edx], eax
inc esi
add dword [ebp - 0xcc], 4
mov ecx, dword [ebp - 0x10]
cmp esi, ecx
jae 0x4196da
cmp esi, 0x20
jl 0x4196b4
xor eax, eax
mov dword [0x4a9460], eax
jmp case.0x417f40.61444
mov edx, dword [0x4a9094]
push edx
call fcn.0042576c
pop ecx
mov dword [0x4a9420], eax
jmp case.0x417f40.61444
mov ecx, dword [ebp - 0x10]
cmp ecx, 0xd
jb case.0x417f40.61444
push 1
push 0x10
mov eax, dword [0x4a9094]
push eax
call fcn.00425620
add esp, 0xc
call fcn.00401608
mov dword [0x4a9418], eax
push 1
push 0x1c
mov edx, dword [0x4a9094]
push edx
call fcn.00425620
add esp, 0xc
call fcn.00401608
mov ecx, dword [0x4a9418]
add eax, ecx
mov dword [0x4a9418], eax
mov dword [0x4eb70c], 0x406f20
jmp case.0x417f40.61444
mov eax, dword [ebp - 0xc]
cmp eax, 2
jne case.0x417f40.61444
mov edx, dword [0x4a9094]
push edx
push 0x40
push 0x4a9375
call fcn.00425728
add esp, 0xc
push 0
mov ecx, dword [ebp - 0x18]
push ecx
mov eax, dword [0x4a9094]
push eax
call fcn.00425620
add esp, 0xc
mov edx, dword [ebp - 4]
add dword [ebp - 4], 0xffffffff
test edx, edx
jne 0x417a4a
mov ecx, dword [ebp - 0xb4]
test ecx, ecx
je 0x419818
mov eax, dword [ebp - 0xb4]
push eax
call fcn.004456b8
pop ecx
mov ebx, eax
test eax, eax
je 0x419818
push 0
mov edx, dword [ebp - 0xb0]
push edx
mov ecx, dword [0x4a9094]
push ecx
call fcn.00425620
add esp, 0xc
mov eax, dword [0x4a9094]
push eax
push 1
mov edx, dword [ebp - 0xb4]
push edx
push ebx
call fcn.004256d0
add esp, 0x10
mov ecx, dword [ebp - 0xb8]
push ecx
push 1
mov eax, dword [ebp - 0xb4]
shr eax, 2
push eax
push ebx
call fcn.004095fc
mov edx, dword [0x4a9094]
add esp, 0x10
mov dword [ebp - 0xbc], edx
mov ecx, dword [ebp - 0xbc]
push ebx
mov dword [0x4a9094], ecx
call fcn.004456c8
pop ecx
xor esi, esi
lea eax, [ebp - 0x5c]
mov dword [ebp - 0xcc], eax
lea edx, [ebp - 0x2b0]
mov dword [ebp - 0xc4], edx
jmp 0x41986c
xor ecx, ecx
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0xc4]
mov edx, dword [ebp - 0xcc]
jmp 0x419850
fld qword [edx]
fmul qword [eax]
fstp qword [eax]
inc dword [ebp - 0x24]
add eax, 8
mov ecx, dword [ebp - 0x24]
mov ebx, dword [0x4a9520]
cmp ecx, ebx
jb 0x419844
inc esi
add dword [ebp - 0xcc], 8
add dword [ebp - 0xc4], 0x20
mov eax, dword [0x4a9520]
cmp esi, eax
jb 0x419831
mov edx, dword [ebp - 0x1c]
test edx, edx
je 0x41998d
xor ecx, ecx
mov dword [ebp - 0x24], ecx
lea eax, [ebp - 0x370]
mov dword [ebp - 0xc4], eax
lea edx, [ebp - 0x2b0]
mov dword [ebp - 0xcc], edx
jmp 0x419968
mov eax, dword [ebp - 0xcc]
lea ecx, [ebp - 0x310]
mov edx, eax
lea eax, [ebp - 0x94]
mov dword [ebp - 0xe0], edx
mov dword [ebp - 0xdc], ecx
mov dword [ebp - 0xd8], eax
xor esi, esi
mov edx, dword [ebp - 0xc4]
mov ecx, edx
mov dword [ebp - 0xd0], ecx
xor eax, eax
mov dword [ebp - 0x59c], eax
mov ebx, eax
fild dword [ebp - 0x59c]
mov edx, dword [ebp - 0xd0]
fstp qword [edx]
mov ecx, dword [ebp - 0xd0]
mov eax, ecx
mov dword [ebp - 0xd4], eax
lea eax, [ebx + ebx*2]
mov ecx, dword [ebp - 0xdc]
mov edx, dword [ebp - 0xd8]
lea ecx, [ecx + eax*8]
mov eax, dword [ebp - 0xe0]
lea eax, [eax + ebx*8]
jmp 0x419932
fld qword [eax]
fmul qword [ecx]
mov edi, dword [ebp - 0xd4]
add ecx, 0x18
inc ebx
add eax, 8
fmul qword [edx]
fadd qword [edi]
fstp qword [edi]
mov edi, dword [0x4a9520]
cmp ebx, edi
jb 0x41991b
inc esi
add dword [ebp - 0xdc], 8
add dword [ebp - 0xd8], 8
add dword [ebp - 0xd0], 8
cmp esi, 3
jl 0x4198d8
inc dword [ebp - 0x24]
add dword [ebp - 0xc4], 0x18
add dword [ebp - 0xcc], 0x20
mov eax, dword [ebp - 0x24]
mov edx, dword [0x4a9520]
cmp eax, edx
jb 0x4198a2
lea ecx, [ebp - 0x370]
push ecx
push 0x4cb6a4
call fcn.0040f340
add esp, 8
fld qword [ebp - 0x7c]
fcomp dword [0x419a58]
fnstsw ax
sahf
je 0x4199f1
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0x24], ecx
lea eax, [ebp - 0x7c]
mov dword [ebp - 0xcc], 0x4cb684
mov dword [ebp - 0xc4], eax
mov dword [0x4cb690], edx
jmp 0x4199e4
fld dword [0x419a74]
mov edx, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xcc]
fdiv qword [edx]
fstp dword [ecx]
inc dword [ebp - 0x24]
add dword [ebp - 0xcc], 4
add dword [ebp - 0xc4], 8
mov eax, dword [ebp - 0x24]
mov edx, dword [0x4a9520]
cmp eax, edx
jb 0x4199bd
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
jne 0x419a4a
xor eax, eax
lea edx, [ebp - 0x2b0]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xcc], 0x4cb694
jmp 0x419a3e
mov ecx, dword [ebp - 0xcc]
mov eax, dword [ebp - 0xc4]
mov edx, dword [ebp - 0xcc]
fld dword [ecx]
fdiv qword [eax]
fstp dword [edx]
inc dword [ebp - 0x24]
add dword [ebp - 0xc4], 0x28
add dword [ebp - 0xcc], 4
mov ecx, dword [ebp - 0x24]
mov eax, dword [0x4a9520]
cmp ecx, eax
jb 0x419a15
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret