Function at 0x5a2da0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10c
mov eax, dword [ebp + 8]
or ecx, 0xffffffff
push ebx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x28], ecx
mov ecx, dword [eax + 0x768e8]
movsx edx, byte [ecx + 0x3a]
push esi
xor esi, esi
push edi
add ecx, 0x34
mov dword [eax + 0x20680], ecx
mov dword [eax + 0x4d8], esi
mov dword [eax + 0x368], esi
mov dword [eax + 0xc], esi
add eax, 0x968ec
push esi
mov edi, 1
push eax
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x24], esi
call fcn.0066a49c
mov ebx, dword [ebp + 8]
add esp, 8
test eax, eax
je 0x5a2e17
mov dword [ebp - 8], edi
jmp 0x5a3ed1
mov edi, dword [ebx + 0x768e8]
mov eax, dword [edi + 0x30]
cmp dword [eax + 0x14], esi
jne 0x5a2e61
cmp dword [eax + 0xc], esi
je 0x5a2e46
cmp dword [eax + 0x14], esi
jne 0x5a2e3b
mov eax, dword [eax + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp dword [eax + 0x14], esi
jne 0x5a2e61
cmp dword [eax + 4], esi
setne cl
test cl, cl
jne 0x5a2e61
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp eax, esi
mov dword [ebx], eax
je 0x5a2e55
mov eax, dword [edi + 0x30]
add eax, 0x20
mov eax, dword [eax]
cmp eax, esi
je 0x5a2e78
add eax, 4
jmp 0x5a2e7d
mov eax, 0x67b348
mov ecx, ebx
mov dword [ebx + 8], eax
call fcn.0059c630
fld dword [ebx + 0x205c8]
fld qword [0x6c15c8]
xor eax, eax
cmp dword [ebx + 0x3c0], esi
fcom st(1)
sete al
mov dword [ebp - 8], eax
fnstsw ax
fstp st(1)
test ah, 0x41
fld dword [0x6c1040]
fld qword [0x6c0d60]
jp 0x5a2ec7
fld dword [ebx + 0x205c8]
fcomp st(1)
fnstsw ax
test ah, 0x41
jnp 0x5a2eef
fxch st(1)
mov dword [ebx + 0x2059c], esi
fst dword [ebx + 0x205d4]
mov dword [ebx + 0x20598], esi
fst dword [ebx + 0x205d0]
fst dword [ebx + 0x205cc]
fst dword [ebx + 0x205c8]
fxch st(1)
fld dword [ebx + 0x205d0]
fcomp st(3)
fnstsw ax
fstp st(2)
test ah, 1
jne 0x5a2f4e
fld dword [ebx + 0x205d0]
fcomp st(2)
fnstsw ax
fstp st(1)
test ah, 0x41
jp 0x5a2f50
fstp st(0)
mov eax, dword [ebp - 0x28]
cmp eax, esi
jl 0x5a2f20
mov dword [ebx + 0x474], eax
mov eax, dword [ebx + 0x474]
add eax, 0xe10
cdq
mov ecx, 0x168
idiv ecx
sub edx, 0x5a
je 0x5a2f82
sub edx, 0x5a
je 0x5a2f76
sub edx, 0x5a
jne 0x5a2f8c
mov dword [ebx + 0x474], 5
jmp 0x5a2f8c
fstp st(1)
fst dword [ebx + 0x205d4]
mov dword [ebx + 0x2059c], esi
fst dword [ebx + 0x205d0]
mov dword [ebx + 0x20598], esi
fst dword [ebx + 0x205cc]
fstp dword [ebx + 0x205c8]
jmp 0x5a2f13
mov dword [ebx + 0x474], 3
jmp 0x5a2f8c
mov dword [ebx + 0x474], 6
fld1
movzx edi, word [ebx + 0x462]
fcom qword [ebx + 0x480]
movzx esi, word [ebx + 0x460]
mov dword [ebp - 4], edi
mov dword [ebp - 0xc], esi
fnstsw ax
test ah, 0x41
fld qword [0x69f210]
jne 0x5a2fca
fild dword [ebp - 0xc]
fdiv qword [ebx + 0x480]
fadd st(1)
call fcn.0066a3f0
mov dword [ebp - 0xc], eax
jmp 0x5a2fed
fxch st(1)
fcom qword [ebx + 0x480]
fnstsw ax
test ah, 5
jp 0x5a2feb
fild dword [ebp - 4]
fmul qword [ebx + 0x480]
fadd st(2)
call fcn.0066a3f0
mov edi, eax
fxch st(1)
cmp dword [ebp - 0x10], 0
je 0x5a3042
movzx eax, word [ebx + 0x46e]
test ax, ax
je 0x5a3042
fstp st(1)
call fcn.00667480
fstp dword [ebp - 4]
movzx eax, word [ebx + 0x46e]
movzx edx, ax
mov dword [ebp - 0xc], edx
fild dword [ebp - 0xc]
fld dword [ebp - 4]
fld st(0)
fdivp st(2)
fxch st(1)
call fcn.0066a3f0
sub esi, dword [ebp - 0xc]
mov edi, eax
mov dword [ebp - 4], esi
fidivr dword [ebp - 4]
call fcn.0066a3f0
fld1
fld qword [0x69f210]
mov dword [ebp - 0xc], eax
mov eax, dword [ebx + 0x768e8]
cmp byte [eax + 0x3a], 0
je 0x5a305e
cmp dword [ebp - 0x10], 0
je 0x5a3070
cmp word [ebx + 0x46e], 0
je 0x5a3070
test byte [ebx + 0x474], 4
je 0x5a3070
mov eax, edi
mov edi, dword [ebp - 0xc]
mov ecx, eax
jmp 0x5a3073
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x5a307c
mov dword [eax], edi
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x5a3085
mov dword [eax], ecx
cmp dword [ebp - 0x20], 0
je 0x5a30e5
mov ecx, dword [ebx + 0x328]
fstp st(0)
or ecx, dword [ebx + 0x32c]
fstp st(0)
je 0x5a3733
cmp dword [ebx + 0x20654], 0
je 0x5a3733
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 0x330]
mov ecx, dword [ebx + 0x328]
push edx
push eax
push ecx
push str._10ld_10d__s_n
call fcn.0061ba10
mov eax, dword [ebx + 0x3c0]
add esp, 0x10
neg eax
sbb eax, eax
neg eax
sub eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp dword [ebp - 0x2c], 0
je 0x5a3143
mov eax, dword [ebx + 0x34c]
xor ecx, ecx
test eax, eax
sete cl
test ecx, ecx
mov dword [ebp - 8], ecx
jne 0x5a372f
mov ecx, dword [ebx + 0x96930]
test ecx, ecx
je 0x5a3412
mov dx, word [ebx + 0x472]
mov dword [ebx + 0x348], eax
mov ax, word [ebx + 0x470]
mov dword [ebx + 0x9692c], ecx
mov word [ebx + 0x460], dx
mov word [ebx + 0x462], ax
mov dword [ebx + 0x338], 0
cmp dword [ebx + 0x9692c], 0x5896c0
jne 0x5a317b
movzx eax, word [ebx + 0x460]
movzx edx, al
and edx, 1
add edx, eax
movzx eax, word [ebx + 0x462]
movzx ecx, al
and ecx, 1
add ecx, eax
mov word [ebx + 0x460], dx
mov word [ebx + 0x462], cx
cmp dword [ebx + 0x20654], 0
je 0x5a33b2
cmp dword [ebx + 0x20594], 0
je 0x5a33b2
cmp byte [ebx + 0x215], 0
lea esi, [ebx + 0x215]
je 0x5a33b2
mov edx, dword [ebx + 8]
fstp st(0)
push edx
fstp st(0)
push str._nFilename:__s_n
call fcn.0061ba10
lea eax, [ebx + 0x328]
push eax
call fcn.0061c722
add esp, 0xc
push eax
push str.Timestamp:__s
call fcn.0061ba10
lea ecx, [ebx + 0x255]
push ecx
push esi
push str.Camera:__s__s_n
call fcn.0061ba10
lea eax, [ebx + 0x2d5]
add esp, 0x14
cmp byte [eax], 0
je 0x5a3202
push eax
push str.Owner:__s_n
call fcn.0061ba10
add esp, 8
cmp dword [ebx + 0x3c4], 0
je 0x5a324f
push str.DNG_Version:
call fcn.0061ba10
add esp, 4
mov esi, 0x18
lea ecx, [ecx]
mov eax, dword [ebx + 0x3c4]
mov edx, esi
neg edx
sbb edx, edx
mov ecx, esi
shr eax, cl
and edx, 0x24
add edx, 0xa
push edx
and eax, 0xff
push eax
push str._d_c
call fcn.0061ba10
add esp, 0xc
sub esi, 8
jns 0x5a3220
fld dword [ebx + 0x320]
call fcn.0066a3f0
push eax
push str.ISO_speed:__d_n
call fcn.0061ba10
push str.Shutter:
call fcn.0061ba10
lea esi, [ebx + 0x20670]
add esp, 0xc
mov ecx, esi
call fcn.004db440
fcomp qword [0x6c0a98]
fnstsw ax
test ah, 0x41
jne 0x5a32b7
mov ecx, esi
call fcn.004db440
fcomp qword [0x6a5f28]
fnstsw ax
test ah, 5
jp 0x5a32b7
push 0x6b97fc
call fcn.0061ba10
mov eax, dword [esi]
mov ecx, dword [esi + 4]
add esp, 4
mov dword [esi], ecx
mov dword [esi + 4], eax
mov ecx, esi
call fcn.004db440
sub esp, 8
fstp qword [esp]
push str._0.1f_sec_n
call fcn.0061ba10
add esp, 0xc
lea ecx, [ebx + 0x20678]
call fcn.004db440
sub esp, 8
fstp qword [esp]
push str.Aperture:_f__0.1f_n
call fcn.0061ba10
add esp, 0xc
lea ecx, [ebx + 0x20668]
call fcn.004db440
sub esp, 8
fstp qword [esp]
push str.Focal_length:__0.1f_mm_n
call fcn.0061ba10
add esp, 0xc
cmp dword [ebx + 0x360], 0
mov eax, 0x6a6f48
jne 0x5a3320
mov eax, 0x6a6f4c
push eax
push str.Embedded_ICC_profile:__s_n
call fcn.0061ba10
mov ecx, dword [ebx + 0x3c0]
push ecx
push str.Number_of_raw_images:__d_n
call fcn.0061ba10
fld1
fcomp qword [ebx + 0x480]
add esp, 0x10
fnstsw ax
test ah, 0x44
jnp 0x5a3367
fld qword [ebx + 0x480]
sub esp, 8
fstp qword [esp]
push str.Pixel_Aspect_Ratio:__0.6f_n
call fcn.0061ba10
add esp, 0xc
cmp dword [ebx + 0x34c], 0
je 0x5a338d
movzx edx, word [ebx + 0x472]
movzx eax, word [ebx + 0x470]
push edx
push eax
push str.Thumb_size:___4d_x__d_n
call fcn.0061ba10
add esp, 0xc
movzx ecx, word [ebx + 0x45c]
movzx edx, word [ebx + 0x45e]
push ecx
push edx
push str.Full_size:____4d_x__d_n
call fcn.0061ba10
add esp, 0xc
fld1
fld qword [0x69f210]
cmp dword [ebx + 0x3c0], 0
je 0x5a372f
cmp dword [ebx + 0x338], 0
je 0x5a3450
cmp dword [ebx + 0x20584], 0
jne 0x5a340b
fldz
fcomp dword [ebx + 0x20580]
fnstsw ax
test ah, 0x44
jp 0x5a3402
fld st(1)
fcomp qword [ebx + 0x488]
fnstsw ax
test ah, 0x44
jp 0x5a3402
fld st(1)
fcomp qword [ebx + 0x498]
fnstsw ax
test ah, 0x44
jnp 0x5a3450
cmp dword [ebx + 0x20654], 0
jne 0x5a3450
mov eax, 1
jmp 0x5a3452
mov ecx, dword [ebx]
fstp st(0)
cmp dword [ecx + 0x14], 0
fstp st(0)
je 0x5a343c
cmp dword [ecx + 0x18], 0xffffffff
je 0x5a3a3b
mov edx, dword [ecx + 0x1c]
cmp edx, eax
mov dword [ecx + 0x18], eax
ja 0x5a3434
mov eax, edx
mov dword [ecx + 0x18], eax
jmp 0x5a3a3b
mov ecx, dword [ecx + 4]
push 0
push eax
push ecx
call fcn.006081d8
add esp, 0xc
jmp 0x5a3a3b
xor eax, eax
movzx edi, word [ebx + 0x460]
movzx edx, word [ebx + 0x462]
movzx ecx, ax
mov word [ebx + 0x468], ax
add edx, ecx
lea eax, [edi + ecx]
sar eax, cl
sar edx, cl
cmp dword [ebx + 0x20654], 0
mov word [ebx + 0x46a], ax
mov word [ebx + 0x46c], dx
je 0x5a374b
cmp dword [ebx + 0x20594], 0
je 0x5a372f
cmp dword [ebp - 0x10], 0
je 0x5a35c0
movzx eax, word [ebx + 0x46e]
test ax, ax
je 0x5a3536
movzx edx, ax
fstp st(1)
lea esi, [edx + ecx - 1]
sar esi, cl
mov word [ebx + 0x46e], si
call fcn.00667480
fnstcw word [ebp - 6]
movzx eax, si
mov dword [ebp - 4], eax
movzx eax, word [ebp - 6]
fild dword [ebp - 4]
movzx edx, word [ebx + 0x46a]
fdiv st(1)
or eax, 0xc00
mov dword [ebp - 4], eax
movzx eax, si
sub edx, eax
fldcw word [ebp - 4]
fistp dword [ebp - 4]
movzx ecx, word [ebp - 4]
mov dword [ebp - 4], edx
mov word [ebx + 0x46c], cx
fldcw word [ebp - 6]
fild dword [ebp - 4]
fnstcw word [ebp - 6]
movzx eax, word [ebp - 6]
fdivrp st(1)
or eax, 0xc00
mov dword [ebp - 4], eax
fldcw word [ebp - 4]
fistp dword [ebp - 4]
movzx ecx, word [ebp - 4]
mov word [ebx + 0x46a], cx
fldcw word [ebp - 6]
jmp 0x5a35c4
fxch st(1)
fcom qword [ebx + 0x480]
fnstsw ax
test ah, 0x41
jne 0x5a357d
movzx eax, word [ebx + 0x46a]
fnstcw word [ebp - 6]
mov dword [ebp - 4], eax
movzx eax, word [ebp - 6]
fild dword [ebp - 4]
or eax, 0xc00
mov dword [ebp - 4], eax
fdiv qword [ebx + 0x480]
fadd st(2)
fldcw word [ebp - 4]
fistp dword [ebp - 4]
mov cx, word [ebp - 4]
mov word [ebx + 0x46a], cx
fldcw word [ebp - 6]
fcomp qword [ebx + 0x480]
fnstsw ax
test ah, 5
jp 0x5a35c2
movzx edx, dx
fnstcw word [ebp - 6]
movzx eax, word [ebp - 6]
mov dword [ebp - 4], edx
or eax, 0xc00
fild dword [ebp - 4]
mov dword [ebp - 4], eax
fmul qword [ebx + 0x480]
faddp st(1)
fldcw word [ebp - 4]
fistp dword [ebp - 4]
mov ax, word [ebp - 4]
mov word [ebx + 0x46c], ax
fldcw word [ebp - 6]
jmp 0x5a35c4
fstp st(0)
fstp st(0)
test byte [ebx + 0x474], 4
je 0x5a35f3
mov cx, word [ebx + 0x46c]
add word [ebx + 0x46a], cx
movzx eax, word [ebx + 0x46a]
sub ax, cx
sub word [ebx + 0x46a], ax
mov word [ebx + 0x46c], ax
movzx eax, word [ebx + 0x462]
push edi
push eax
push str.Image_size:___4d_x__d_n
call fcn.0061ba10
movzx edx, word [ebx + 0x46a]
movzx eax, word [ebx + 0x46c]
add esp, 0xc
push edx
push eax
push str.Output_size:__4d_x__d_n
call fcn.0061ba10
mov ecx, dword [ebx + 0x47c]
add esp, 0xc
push ecx
push str.Raw_colors:__d
call fcn.0061ba10
add esp, 8
cmp dword [ebx + 0x338], 0
je 0x5a3686
push str._nFilter_pattern:
call fcn.0061ba10
add esp, 4
cmp byte [ebx + 0x13], 0
jne 0x5a365a
mov byte [ebx + 0x13], 0x47
xor edi, edi
lea esp, [esp]
mov ecx, edi
mov edx, edi
and ecx, 1
sar edx, 1
mov esi, ebx
call fcn.0057de30
movsx edx, byte [eax + ebx + 0x10]
push edx
call fcn.0061c798
add edi, 1
add esp, 4
cmp edi, 0x10
jl 0x5a3660
push str._nDaylight_multipliers:
call fcn.0061ba10
xor esi, esi
add esp, 4
cmp dword [ebx + 0x47c], esi
jle 0x5a36c6
lea edi, [ebx + 0x205d8]
fld dword [edi]
sub esp, 8
fstp qword [esp]
push 0x6b9928
call fcn.0061ba10
add esi, 1
add esp, 0xc
add edi, 4
cmp esi, dword [ebx + 0x47c]
jl 0x5a36a3
fldz
lea esi, [ebx + 0x205c8]
fcomp dword [esi]
fnstsw ax
test ah, 5
jp 0x5a370d
push str._nCamera_multipliers:
call fcn.0061ba10
add esp, 4
mov edi, 4
lea esp, [esp]
fld dword [esi]
sub esp, 8
fstp qword [esp]
push 0x6b9928
call fcn.0061ba10
add esp, 0xc
add esi, 4
sub edi, 1
jne 0x5a36f0
push 0xa
call fcn.0061c798
mov eax, dword [ebx + 0x3c0]
add esp, 4
neg eax
sbb eax, eax
neg eax
sub eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
fstp st(0)
fstp st(0)
mov eax, dword [ebx + 0x3c0]
neg eax
sbb eax, eax
neg eax
sub eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp dword [ebx + 0x20650], 0
fstp st(0)
fstp st(0)
jne 0x5a3a3b
cmp dword [ebx + 0x205a0], 0
je 0x5a3791
fld dword [0x6c11b8]
lea esi, [ebx + 0x205e8]
fcomp dword [esi]
fnstsw ax
test ah, 5
jp 0x5a3791
lea edi, [ebx + 0x20618]
mov ecx, 0xc
rep movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x3b4], 0
movzx eax, word [ebx + 0x46a]
movzx esi, dx
cdq
mov ecx, eax
mov edi, edx
mov eax, esi
cdq
push edx
push eax
push edi
push ecx
call fcn.00612640
push 0
push 8
push edx
push eax
call fcn.00612640
test edx, edx
ja 0x5a37c2
cmp eax, 0x20000000
jbe 0x5a37ce
mov dword [ebp - 8], 4
jmp 0x5a3ed1
movzx eax, word [ebx + 0x46a]
imul eax, esi
push 8
call fcn.0057dcc0
add esp, 4
test eax, eax
mov dword [ebx + 0x4d8], eax
je 0x5a3806
mov eax, dword [ebx + 0x35c]
test eax, eax
je 0x5a3814
push eax
call fcn.0045d550
add esp, 4
test eax, eax
mov dword [ebx + 0xc], eax
jne 0x5a3814
push 1
add ebx, 0x968ec
push ebx
call fcn.0061b7d8
mov eax, dword [ebx]
cmp dword [eax + 0x14], 0
mov ecx, dword [ebx + 0x348]
je 0x5a3839
cmp dword [eax + 0x18], 0xffffffff
je 0x5a3848
mov edx, dword [eax + 0x1c]
cmp edx, ecx
mov dword [eax + 0x18], ecx
ja 0x5a3834
mov ecx, edx
mov dword [eax + 0x18], ecx
jmp 0x5a3848
mov edx, dword [eax + 4]
push 0
push ecx
push edx
call fcn.006081d8
add esp, 0xc
cmp dword [ebx + 0x20650], 0
jne 0x5a385b
mov eax, dword [ebx + 0x9692c]
mov ecx, ebx
call eax
mov eax, dword [ebx + 0x20680]
test eax, eax
je 0x5a386f
mov ecx, dword [eax]
test ecx, ecx
jne 0x5a3ed1
cmp dword [ebx + 0x3b8], 0
je 0x5a387f
mov edi, ebx
call fcn.0057f2f0
mov eax, dword [ebx + 0x398]
mov ecx, dword [ebx + 0x38c]
cmp eax, ecx
jbe 0x5a3891
mov eax, ecx
mov ecx, dword [ebx + 0x390]
cmp eax, ecx
jbe 0x5a389d
mov eax, ecx
mov ecx, dword [ebx + 0x394]
cmp eax, ecx
jbe 0x5a38a9
mov eax, ecx
sub dword [ebx + 0x38c], eax
sub dword [ebx + 0x390], eax
sub dword [ebx + 0x394], eax
sub dword [ebx + 0x398], eax
add dword [ebx + 0x388], eax
mov eax, dword [ebp - 0x18]
test eax, eax
jl 0x5a38d4
mov dword [ebx + 0x388], eax
mov eax, dword [ebp - 0x30]
test eax, eax
jle 0x5a38e1
mov dword [ebx + 0x3ac], eax
cmp dword [ebx + 0x3c8], 0
je 0x5a390f
cmp dword [ebx + 0x2058c], 0
jne 0x5a390f
mov ecx, ebx
call fcn.0058c690
cmp dword [ebx + 0x3cc], 0
je 0x5a390f
mov dword [ebp - 8], 3
jmp 0x5a3ed1
cmp dword [ebx + 0x3c8], 0
mov edi, 2
jne 0x5a392c
cmp dword [ebx + 0x2058c], edi
jge 0x5a392c
mov eax, ebx
call fcn.005a4aa0
mov eax, dword [ebx + 0x20680]
test eax, eax
je 0x5a3940
mov edx, dword [eax]
test edx, edx
jne 0x5a3ed1
mov eax, ebx
call fcn.00590700
cmp dword [ebx + 0x338], 0
je 0x5a3963
cmp dword [ebx + 0x2058c], 0
jne 0x5a3963
mov ecx, dword [ebp + 0xc]
mov esi, ebx
call fcn.005a4240
cmp dword [ebx + 0x3b0], 0
je 0x5a39c3
movzx eax, word [ebx + 0x462]
movzx edx, word [ebx + 0x460]
imul eax, edx
xor ecx, ecx
test eax, eax
mov dword [ebx + 0x47c], 3
jle 0x5a39c3
lea ecx, [ecx]
mov eax, dword [ebx + 0x4d8]
movzx edx, word [eax + ecx*8 + 6]
movzx esi, word [eax + ecx*8 + 2]
lea eax, [eax + ecx*8]
add edx, esi
sar edx, 1
mov word [eax + 2], dx
movzx eax, word [ebx + 0x462]
movzx edx, word [ebx + 0x460]
imul eax, edx
add ecx, 1
cmp ecx, eax
jl 0x5a3990
cmp dword [ebx + 0x3c8], 0
jne 0x5a3a09
cmp dword [ebx + 0x47c], 3
jne 0x5a39db
push ebx
call fcn.00591810
cmp dword [ebx + 0x3c8], 0
jne 0x5a3a09
cmp dword [ebx + 0x20590], edi
jne 0x5a39f2
push ebx
call fcn.00591a00
cmp dword [ebx + 0x3c8], 0
jne 0x5a3a09
cmp dword [ebx + 0x20590], edi
jle 0x5a3a09
push ebx
call fcn.00591fb0
cmp dword [ebp - 0x10], 0
je 0x5a3a16
mov eax, ebx
call fcn.005a1a60
mov eax, dword [ebp - 0x34]
test eax, eax
je 0x5a3a27
mov ecx, dword [ebp - 0x1c]
push ecx
push ebx
call fcn.005a17b0
mov esi, ebx
call fcn.005a5200
cmp dword [ebp - 0x10], 0
je 0x5a3a3b
mov eax, ebx
call fcn.005a1dc0
mov esi, dword [ebx + 0x20658]
test esi, esi
je 0x5a3da6
cmp byte [ebx + 0x215], 0
je 0x5a3a86
mov edx, dword [ebx + 0x768e8]
add edx, 0x40
push edx
mov eax, 0xa
call fcn.004da1b0
test al, al
je 0x5a3a86
mov edi, 0xa
call fcn.004dabf0
test al, al
jne 0x5a3a86
lea eax, [ebx + 0x215]
push eax
push edi
push esi
call fcn.005a5920
cmp byte [ebx + 0x255], 0
je 0x5a3ac9
mov eax, dword [ebx + 0x768e8]
add eax, 0x40
push eax
mov eax, 0xb
call fcn.004da1b0
test al, al
je 0x5a3ac9
mov esi, dword [ebx + 0x20658]
mov edi, 0xb
call fcn.004dabf0
test al, al
jne 0x5a3ac9
lea eax, [ebx + 0x255]
push eax
push edi
push esi
call fcn.005a5920
mov ecx, dword [ebx + 0x328]
or ecx, dword [ebx + 0x32c]
je 0x5a3b71
mov edx, dword [ebx + 0x768e8]
add edx, 0x40
push edx
mov eax, 0x36
call fcn.004da1b0
test al, al
je 0x5a3b71
mov esi, dword [ebx + 0x20658]
mov edi, 0x36
call fcn.004dabf0
test al, al
jne 0x5a3b71
lea eax, [ebx + 0x328]
push eax
call fcn.0061b19a
mov esi, dword [eax]
add dword [eax + 0x14], 0x76c
add dword [eax + 0x10], 1
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x10]
add esp, 4
push esi
mov esi, dword [eax + 4]
push esi
mov esi, dword [eax + 8]
mov eax, dword [eax + 0xc]
push esi
push eax
push edx
push ecx
push str._4d:_2d:_2d__2d:_2d:_2d
lea esi, [ebp - 0x14]
mov dword [ebp - 0x14], 0
call fcn.00407380
mov edx, dword [ebx + 0x20658]
add esp, 0x1c
mov ecx, esi
push ecx
push edi
push edx
call fcn.00406b00
mov edi, esi
call fcn.00401700
mov dword [ebp - 0x14], 0
cmp word [ebx + 0x462], 0
je 0x5a3bb5
mov eax, dword [ebx + 0x768e8]
add eax, 0x40
push eax
mov eax, 0x4c
call fcn.004da1b0
test al, al
je 0x5a3bb5
mov esi, dword [ebx + 0x20658]
mov edi, 0x4c
call fcn.004dabf0
test al, al
jne 0x5a3bb5
lea eax, [ebx + 0x462]
push eax
push edi
push esi
call fcn.004d8da0
cmp word [ebx + 0x460], 0
je 0x5a3bf9
mov ecx, dword [ebx + 0x768e8]
add ecx, 0x40
push ecx
mov eax, 0x4d
call fcn.004da1b0
test al, al
je 0x5a3bf9
mov esi, dword [ebx + 0x20658]
mov edi, 0x4d
call fcn.004dabf0
test al, al
jne 0x5a3bf9
lea eax, [ebx + 0x460]
push eax
push edi
push esi
call fcn.004d8da0
fldz
fcomp dword [ebx + 0x320]
fnstsw ax
test ah, 0x44
jnp 0x5a3c42
mov edx, dword [ebx + 0x768e8]
add edx, 0x40
push edx
mov eax, 0x32
call fcn.004da1b0
test al, al
je 0x5a3c42
mov esi, dword [ebx + 0x20658]
mov edi, 0x32
call fcn.004dabf0
test al, al
jne 0x5a3c42
lea eax, [ebx + 0x320]
push eax
push edi
push esi
call fcn.005a5bf0
cmp dword [ebx + 0x2066c], 0
je 0x5a3c85
mov eax, dword [ebx + 0x768e8]
add eax, 0x40
push eax
mov eax, 0x43
call fcn.004da1b0
test al, al
je 0x5a3c85
mov esi, dword [ebx + 0x20658]
mov edi, 0x43
call fcn.004dabf0
test al, al
jne 0x5a3c85
lea ecx, [ebx + 0x20668]
push ecx
push edi
push esi
call fcn.004fa950
cmp dword [ebx + 0x20674], 0
je 0x5a3cc8
mov edx, dword [ebx + 0x768e8]
add edx, 0x40
push edx
mov eax, 0x2e
call fcn.004da1b0
test al, al
je 0x5a3cc8
mov esi, dword [ebx + 0x20658]
mov edi, 0x2e
call fcn.004dabf0
test al, al
jne 0x5a3cc8
lea eax, [ebx + 0x20670]
push eax
push edi
push esi
call fcn.004fa950
cmp dword [ebx + 0x2067c], 0
je 0x5a3d0b
mov ecx, dword [ebx + 0x768e8]
add ecx, 0x40
push ecx
mov eax, 0x2f
call fcn.004da1b0
test al, al
je 0x5a3d0b
mov esi, dword [ebx + 0x20658]
mov edi, 0x2f
call fcn.004dabf0
test al, al
jne 0x5a3d0b
lea edx, [ebx + 0x20678]
push edx
push edi
push esi
call fcn.004fa950
fld dword [0x6c0e68]
fcomp dword [ebx + 0x318]
fnstsw ax
test ah, 0x44
jnp 0x5a3d58
mov eax, dword [ebx + 0x768e8]
add eax, 0x40
push eax
mov eax, 0x42
call fcn.004da1b0
test al, al
je 0x5a3d58
mov esi, dword [ebx + 0x20658]
mov edi, 0x42
call fcn.004dabf0
test al, al
jne 0x5a3d58
lea eax, [ebx + 0x318]
push eax
push edi
push esi
call fcn.005a5bf0
cmp dword [ebx + 0x20664], 0
je 0x5a3d9b
mov ecx, dword [ebx + 0x768e8]
add ecx, 0x40
push ecx
mov eax, 0x3f
call fcn.004da1b0
test al, al
je 0x5a3d9b
mov esi, dword [ebx + 0x20658]
mov edi, 0x3f
call fcn.004dabf0
test al, al
jne 0x5a3d9b
lea edx, [ebx + 0x20660]
push edx
push edi
push esi
call fcn.004fa950
mov esi, dword [ebx + 0x20658]
call fcn.004daef0
cmp dword [ebx + 0x20650], 0
jne 0x5a3ed1
mov eax, dword [ebx + 0x768e8]
cmp byte [eax + 0x3a], 0
je 0x5a3dd9
push ebx
call fcn.005a2bf0
mov eax, dword [ebx + 0x768e8]
mov ecx, dword [ebx + 0x474]
mov dword [eax + 0x3c], ecx
jmp 0x5a3ed1
add eax, 8
push eax
mov eax, ebx
call fcn.005a4000
fld1
fcomp qword [ebx + 0x480]
fnstsw ax
test ah, 0x44
jnp 0x5a3ed1
lea esi, [ebp - 0x108]
call fcn.0047d920
mov edx, dword [ebx + 0x768e8]
add edx, 8
push edx
lea eax, [ebp - 0x70]
call fcn.004794c0
movzx edx, word [ebx + 0x460]
movzx ecx, word [ebx + 0x462]
mov ebx, dword [ebx + 0x768e8]
add ebx, 8
call fcn.00479fc0
mov esi, eax
test esi, esi
je 0x5a3e54
lea eax, [ebp - 0x70]
call fcn.00479430
lea edi, [ebp - 0x108]
call fcn.00403660
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp + 8]
fldz
mov eax, dword [eax + 0x768e8]
mov esi, dword [eax + 0x24]
mov ecx, dword [eax + 0x14]
mov edi, dword [eax + 0x20]
mov edx, dword [eax + 0x10]
add eax, 8
sub esp, 0x10
fst dword [esp + 0xc]
add ecx, esi
fst dword [esp + 8]
mov dword [ebp - 0x38], ecx
fst dword [esp + 4]
add edx, edi
fstp dword [esp]
mov dword [ebp - 0x3c], edx
lea ecx, [ebp - 0x44]
push ecx
lea edx, [ebp - 0x70]
push edx
sub esp, 8
mov ecx, esp
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x40], esi
mov dword [ecx], 0
mov dword [ecx + 4], eax
lea ecx, [ebp - 0x108]
call fcn.004801f0
mov esi, eax
lea eax, [ebp - 0x70]
call fcn.00479430
lea edi, [ebp - 0x108]
call fcn.00403660
test esi, esi
jne 0x5a3e49
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x5a3ee1
push eax
call fcn.0045da90
add esp, 4
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x5a3ef1
push eax
call fcn.0045da90
add esp, 4
mov eax, dword [ebx + 0x368]
test eax, eax
je 0x5a3f04
push eax
call fcn.0045da90
add esp, 4
mov eax, dword [ebx + 0x4d8]
test eax, eax
je 0x5a3f17
push eax
call fcn.0045da90
add esp, 4
cmp dword [ebx + 0x374], 0
je 0x5a3f3f
add dword [ebx + 0x370], 1
mov eax, dword [ebx + 0x370]
cmp eax, dword [ebx + 0x3c0]
jb 0x5a3f3f
mov dword [ebx + 0x370], 0
cmp dword [ebp - 8], 0
jne 0x5a3f5c
mov ebx, dword [ebx + 0x20680]
test ebx, ebx
je 0x5a3f5c
mov eax, dword [ebx]
test eax, eax
je 0x5a3f5c
mov dword [ebp - 8], 0xf4242
mov eax, dword [ebp - 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10