Function at 0x4f0e80
Capabilities:
Check for software breakpoints
Encode data using xor
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x19c
mov eax, dword [0x551aa8]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 8]
movzx eax, word [esi + 0x6274]
mov ecx, dword [esi]
mov ecx, dword [ecx]
push edi
push 0xa
push 1
lea edx, [ebp - 0x10]
xor edi, edi
mov dword [ebp - 0x198], eax
mov eax, dword [esi + 4]
push edx
push eax
mov dword [ebp - 0x184], edi
mov dword [ebp - 0x190], edi
mov dword [ebp - 0x18c], edi
xor ebx, ebx
mov dword [ebp - 0x158], edi
call ecx
push 3
lea edx, [ebp - 0x10]
push 0x53d364
push edx
call sub.MSVCR100.dll_strncmp
add esp, 0x1c
test eax, eax
je 0x4f22cd
push 3
lea eax, [ebp - 0x10]
push 0x53d360
push eax
call sub.MSVCR100.dll_strncmp
add esp, 0xc
test eax, eax
je 0x4f22cd
push 4
lea ecx, [ebp - 0x10]
push str.IIII
push ecx
call sub.MSVCR100.dll_strncmp
add esp, 0xc
test eax, eax
je 0x4f22cd
push 4
lea edx, [ebp - 0x10]
push str.MMMM
push edx
call sub.MSVCR100.dll_strncmp
add esp, 0xc
test eax, eax
je 0x4f22cd
push 2
lea eax, [ebp - 0x10]
push 0x53d34c
push eax
call sub.MSVCR100.dll_strncmp
add esp, 0xc
test eax, eax
je 0x4f21d7
push 3
lea ecx, [ebp - 0x10]
push 0x53d348
push ecx
call sub.MSVCR100.dll_strncmp
add esp, 0xc
test eax, eax
je 0x4f21d7
mov ecx, str.Nikon
lea eax, [ebp - 0x10]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4f0fa0
test dl, dl
je 0x4f0f9c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4f0fa0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4f0f80
xor eax, eax
jmp 0x4f0fa5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4f0ff6
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x18]
push eax
call ecx
push esi
mov dword [ebp + 0xc], eax
call fcn.004e0df0
push esi
mov word [esi + 0x6274], ax
call fcn.004e0df0
add esp, 0xc
cmp ax, 0x2a
jne 0x4f22bf
push esi
call fcn.004e0e90
mov edx, dword [esi]
mov ecx, dword [edx + 8]
add eax, 0xfffffff8
push 1
push eax
mov eax, dword [esi + 4]
push eax
call ecx
add esp, 0x10
jmp 0x4f1260
mov ecx, 0x538650
lea eax, [ebp - 0x10]
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4f1020
test dl, dl
je 0x4f101c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4f1020
add eax, 2
add ecx, 2
test dl, dl
jne 0x4f1000
xor eax, eax
jmp 0x4f1025
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4f1064
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x18]
push eax
call ecx
mov edx, dword [esi]
mov ecx, dword [edx + 8]
sub eax, 0xa
push 1
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 4]
push 0xfffffffffffffffe
push eax
call ecx
push esi
call fcn.004e0df0
push esi
mov word [esi + 0x6274], ax
call fcn.004e0df0
add esp, 0x18
jmp 0x4f1260
push 8
lea edx, [ebp - 0x10]
push str.FUJIFILM
push edx
call sub.MSVCR100.dll_strncmp
add esp, 0xc
test eax, eax
je 0x4f1242
push 4
lea eax, [ebp - 0x10]
push str.SONY
push eax
call sub.MSVCR100.dll_strncmp
add esp, 0xc
test eax, eax
je 0x4f1242
mov ecx, str.Panasonic
lea eax, [ebp - 0x10]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4f10c2
test dl, dl
je 0x4f10be
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4f10c2
add eax, 2
add ecx, 2
test dl, dl
jne 0x4f10a2
xor eax, eax
jmp 0x4f10c7
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4f1242
mov ecx, str.OLYMP
lea eax, [ebp - 0x10]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4f10f7
test dl, dl
je 0x4f10f3
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4f10f7
add eax, 2
add ecx, 2
test dl, dl
jne 0x4f10d7
xor eax, eax
jmp 0x4f10fc
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4f1231
mov ecx, str.LEICA
lea eax, [ebp - 0x10]
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4f1130
test dl, dl
je 0x4f112c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4f1130
add eax, 2
add ecx, 2
test dl, dl
jne 0x4f1110
xor eax, eax
jmp 0x4f1135
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4f1231
mov ecx, str.Ricoh
lea eax, [ebp - 0x10]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4f1165
test dl, dl
je 0x4f1161
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4f1165
add eax, 2
add ecx, 2
test dl, dl
jne 0x4f1145
xor eax, eax
jmp 0x4f116a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4f1231
mov ecx, str.EPSON
lea eax, [ebp - 0x10]
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4f11a0
test dl, dl
je 0x4f119c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4f11a0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4f1180
xor eax, eax
jmp 0x4f11a5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4f1231
mov ecx, 0x53d304
lea eax, [ebp - 0x10]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4f11d5
test dl, dl
je 0x4f11d1
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4f11d5
add eax, 2
add ecx, 2
test dl, dl
jne 0x4f11b5
xor eax, eax
jmp 0x4f11da
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4f1220
mov ecx, 0x53d300
lea eax, [ebp - 0x10]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4f1206
test dl, dl
je 0x4f1202
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4f1206
add eax, 2
add ecx, 2
test dl, dl
jne 0x4f11e6
xor eax, eax
jmp 0x4f120b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4f1220
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0xfffffffffffffff6
push edx
call eax
jmp 0x4f125d
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0xfffffffffffffffc
push edx
call eax
jmp 0x4f125d
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0xfffffffffffffffe
push edx
call eax
jmp 0x4f125d
mov edx, dword [esi]
mov eax, dword [esi + 4]
push 1
mov ecx, 0x4949
mov word [esi + 0x6274], cx
mov ecx, dword [edx + 8]
push 2
push eax
call ecx
add esp, 0xc
push esi
call fcn.004e0df0
movzx eax, ax
add esp, 4
cmp eax, 0x3e8
ja 0x4f22cd
test eax, eax
je 0x4f22bf
mov edi, dword [ebp + 0x10]
shl edi, 0x10
mov dword [ebp - 0x19c], edi
jmp 0x4f1296
mov edi, dword [ebp - 0x19c]
dec eax
mov dword [ebp - 0x188], eax
lea edx, [ebp - 0x194]
push edx
lea eax, [ebp - 0x170]
push eax
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x16c]
push ecx
lea edx, [ebp - 0x178]
push edx
push eax
push esi
call fcn.004f0d60
mov ebx, dword [ebp - 0x178]
or ebx, edi
add esp, 0x18
mov dword [ebp - 0x178], ebx
cmp ebx, 2
jne 0x4f131e
lea ecx, [esi + 0x6485]
push 0x538670
push ecx
call sub.MSVCR100.dll_strstr
add esp, 8
test eax, eax
je 0x4f165e
push esi
call fcn.004e0df0
push esi
call fcn.004e0df0
movzx edx, ax
mov dword [ebp - 0x168], edx
add esp, 8
fild dword [ebp - 0x168]
fstp dword [esi + 0x6590]
jmp 0x4f165e
mov eax, 4
cmp ebx, eax
jne 0x4f1485
mov eax, dword [ebp - 0x170]
add eax, 0xffffffe5
cmp eax, 7
ja 0x4f165e
push esi
call fcn.004e0e90
push esi
call fcn.004e0df0
movzx ecx, ax
add esp, 8
cmp ecx, 0x7fff
je 0x4f13af
fld dword [esi + 0x6590]
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x4f13af
mov dword [ebp - 0x174], ecx
fild dword [ebp - 0x174]
test ecx, ecx
jns 0x4f137e
fadd qword [0x5124a0]
fmul qword [0x53d2f8]
fsub qword [0x512620]
fld qword [0x512628]
fxch st(1)
call sub.MSVCR100.dll__CIpow
fstp dword [ebp - 0x168]
fld dword [ebp - 0x168]
fmul qword [0x512898]
fstp dword [esi + 0x6590]
push esi
call fcn.004e0df0
push esi
call fcn.004e0df0
movzx ecx, ax
add esp, 8
cmp ecx, 0x7fff
je 0x4f1409
fld dword [esi + 0x6598]
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x4f1409
mov dword [ebp - 0x174], ecx
fild dword [ebp - 0x174]
test ecx, ecx
jns 0x4f13f0
fadd qword [0x5124a0]
fmul qword [0x53d2f0]
fld qword [0x512628]
fxch st(1)
call sub.MSVCR100.dll__CIpow
fstp dword [esi + 0x6598]
push esi
call fcn.004e0df0
movzx ecx, ax
add esp, 4
cmp ecx, 0xffff
je 0x4f1456
fld dword [esi + 0x6594]
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x4f1456
movsx ecx, cx
mov dword [ebp - 0x168], ecx
fild dword [ebp - 0x168]
fmul qword [0x53d2e8]
fld qword [0x512628]
fxch st(1)
call sub.MSVCR100.dll__CIpow
fstp dword [esi + 0x6594]
push esi
call fcn.004e0df0
push esi
call fcn.004e0df0
movzx edx, ax
push esi
mov dword [ebp - 0x18c], edx
call fcn.004e0df0
push esi
call fcn.004e0df0
movzx eax, ax
mov dword [esi + 0x65a8], eax
jmp 0x4f165b
cmp ebx, 7
jne 0x4f14c0
cmp dword [ebp - 0x16c], 2
jne 0x4f165e
cmp dword [ebp - 0x170], 0x14
jbe 0x4f165e
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [ecx + 0x10]
push 0x40
lea edx, [esi + 0x6505]
push edx
push eax
call ecx
add esp, 0xc
jmp 0x4f165e
cmp ebx, 8
jne 0x4f14e5
cmp dword [ebp - 0x16c], eax
jne 0x4f165e
push esi
call fcn.004e0e90
add esp, 4
mov dword [esi + 0x65a8], eax
jmp 0x4f165e
cmp ebx, 9
jne 0x4f153c
mov ecx, 0x538678
lea eax, [esi + 0x6485]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4f1515
test dl, dl
je 0x4f1511
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4f1515
add eax, 2
add ecx, 2
test dl, dl
jne 0x4f14f5
xor eax, eax
jmp 0x4f151a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4f165e
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [edx]
push 1
push 0x40
lea eax, [esi + 0x6545]
push eax
push ecx
call edx
jmp 0x4f165b
cmp ebx, 0xc
jne 0x4f1572
cmp dword [ebp - 0x170], eax
jne 0x4f165e
mov edi, dword [ebp - 0x16c]
push edi
push esi
call fcn.004e0f10
fstp dword [esi + 0xe774]
push edi
push esi
call fcn.004e0f10
fstp dword [esi + 0xe77c]
jmp 0x4f165b
cmp ebx, 0x10
jne 0x4f1597
cmp dword [ebp - 0x16c], eax
jne 0x4f165e
push esi
call fcn.004e0e90
add esp, 4
mov dword [esi + 0x65b8], eax
jmp 0x4f165e
cmp ebx, 0x11
jne 0x4f15fb
cmp dword [esi + 0x6614], 0
je 0x4f165e
push 5
lea eax, [esi + 0x6485]
push 0x538670
push eax
call sub.MSVCR100.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x4f165e
mov eax, dword [esi]
push 0
push esi
mov dword [ebp - 0x168], eax
call fcn.004e0e90
mov edi, dword [ebp + 0xc]
mov ecx, dword [esi + 4]
add eax, edi
add esp, 4
push eax
mov eax, dword [ebp - 0x168]
mov edx, dword [eax + 8]
push ecx
call edx
push edi
push esi
call fcn.004f6e60
add esp, 0x14
jmp 0x4f165e
cmp ebx, 0x14
jne 0x4f162f
cmp dword [ebp - 0x170], 0xa00
jne 0x4f165e
cmp dword [ebp - 0x16c], 7
jne 0x4f165e
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
push 1
push 0x4e0
push ecx
call edx
add esp, 0xc
jmp 0x4f1fb5
cmp ebx, 0x15
jne 0x4f165e
cmp dword [ebp - 0x16c], 2
jne 0x4f165e
cmp dword [esi + 0x6614], 0
je 0x4f165e
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [eax]
push 1
push 0x40
lea ecx, [esi + 0x64c5]
push ecx
push edx
call eax
add esp, 0x10
lea ecx, [esi + 0x6485]
push 0x538648
push ecx
call sub.MSVCR100.dll_strstr
add esp, 8
test eax, eax
je 0x4f16aa
cmp ebx, 0x1b
jne 0x4f1690
mov dword [ebp - 0x178], 0x1018
mov ebx, dword [ebp - 0x178]
jmp 0x4f1f80
cmp ebx, 0x1c
jne 0x4f16aa
mov dword [ebp - 0x178], 0x1017
mov ebx, dword [ebp - 0x178]
jmp 0x4f1f4c
cmp ebx, 0x1d
jne 0x4f171e
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x1c]
push eax
call ecx
mov edi, eax
add esp, 4
test edi, edi
je 0x4f2006
cmp edi, 0xffffffff
je 0x4f2006
push edi
call sub.MSVCR100.dll_isdigit
add esp, 4
test eax, eax
je 0x4f16e2
add edi, 0xffffffd0
jmp 0x4f16f3
mov eax, 0xcccccccd
mul edi
shr edx, 3
lea edx, [edx + edx*4]
add edx, edx
sub edi, edx
mov eax, dword [ebp - 0x190]
mov edx, dword [esi]
lea eax, [eax + eax*4]
lea ecx, [edi + eax*2]
mov eax, dword [esi + 4]
mov dword [ebp - 0x190], ecx
mov ecx, dword [edx + 0x1c]
push eax
call ecx
mov edi, eax
add esp, 4
test edi, edi
jne 0x4f16c7
jmp 0x4f2006
cmp ebx, 0x81
jne 0x4f1781
mov eax, dword [ebp - 0x16c]
cmp eax, 4
jne 0x4f180a
push esi
call fcn.004e0e90
mov edx, dword [esi]
mov dword [esi + 0x65c0], eax
mov ecx, dword [edx + 8]
add eax, 0x29
push 0
push eax
mov eax, dword [esi + 4]
push eax
call ecx
push esi
call fcn.004e0df0
add ax, ax
push esi
mov word [esi + 0x66b0], ax
call fcn.004e0df0
add esp, 0x18
mov word [esi + 0x66b2], ax
mov dword [esi + 0x65b0], 0x61616161
jmp 0x4f2006
cmp ebx, 0x29
jne 0x4f1814
cmp dword [ebp - 0x16c], 1
jne 0x4f2006
mov eax, dword [ebp - 0x18c]
cmp eax, 0x12
jae 0x4f17ae
movsx eax, byte [eax + str.012347800000005896]
sub eax, 0x30
jmp 0x4f17b0
xor eax, eax
mov edx, dword [esi]
mov ecx, dword [edx + 8]
shl eax, 5
add eax, 8
push 1
push eax
mov eax, dword [esi + 4]
push eax
call ecx
add esp, 0xc
xor edi, edi
lea esp, [esp]
push esi
call fcn.004e0e90
add esp, 4
mov dword [ebp - 0x174], eax
fild dword [ebp - 0x174]
test eax, eax
jns 0x4f17ef
fadd dword [0x546df0]
mov edx, edi
xor edx, 2
shr edx, 1
xor edx, edi
inc edi
fstp dword [esi + edx*4 + 0xe774]
cmp edi, 4
jb 0x4f17d0
jmp 0x4f2006
cmp eax, 7
je 0x4f1845
jmp 0x4f2006
cmp ebx, 0x100
jne 0x4f182a
cmp dword [ebp - 0x16c], 7
je 0x4f1845
jmp 0x4f2006
cmp ebx, 0x280
jne 0x4f1865
cmp dword [ebp - 0x16c], 1
jne 0x4f2006
mov ebx, dword [ebp - 0x178]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 0x18]
push ecx
call edx
mov dword [esi + 0x65c4], eax
mov eax, dword [ebp - 0x170]
add esp, 4
mov dword [esi + 0x65d0], eax
mov edi, dword [ebp - 0x184]
mov ecx, 4
cmp ebx, 0x88
jne 0x4f18a9
cmp dword [ebp - 0x16c], ecx
jne 0x4f2006
push esi
call fcn.004e0e90
add esp, 4
mov dword [esi + 0x65c4], eax
test eax, eax
je 0x4f2006
add eax, dword [ebp + 0xc]
mov dword [esi + 0x65c4], eax
jmp 0x4f2006
cmp ebx, 0x89
jne 0x4f18d1
cmp dword [ebp - 0x16c], ecx
jne 0x4f2006
push esi
call fcn.004e0e90
add esp, 4
mov dword [esi + 0x65d0], eax
jmp 0x4f2006
cmp ebx, 0x8c
je 0x4f18e1
cmp ebx, 0x96
jne 0x4f18fa
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x18]
push eax
call ecx
add esp, 4
mov dword [esi + 0x65c8], eax
mov ecx, 4
cmp ebx, 0x97
jne 0x4f1a24
mov ebx, ecx
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 0x1c]
push eax
call ecx
add esp, 4
dec ebx
lea edx, [edi + edi*4]
lea edi, [eax + edx*2 - 0x30]
jne 0x4f1908
mov eax, edi
sub eax, 0x64
mov dword [ebp - 0x184], edi
je 0x4f1985
sub eax, 2
je 0x4f197c
dec eax
jne 0x4f19d7
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
push 1
push 0x10
push ecx
call edx
add esp, 0xc
lea edi, [esi + 0xe774]
mov ebx, 4
push esi
call fcn.004e0df0
movzx eax, ax
mov dword [ebp - 0x168], eax
add esp, 4
add edi, 4
dec ebx
fild dword [ebp - 0x168]
fstp dword [edi - 4]
jne 0x4f1956
jmp 0x4f2006
push 1
push 6
jmp 0x4f2139
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0x44
push edx
call eax
add esp, 0xc
xor edi, edi
lea esp, [esp]
push esi
call fcn.004e0df0
movzx ecx, ax
mov edx, edi
and edx, 1
mov eax, edi
mov dword [ebp - 0x168], ecx
add edx, edx
shr eax, 1
fild dword [ebp - 0x168]
or edx, eax
inc edi
add esp, 4
fstp dword [esi + edx*4 + 0xe774]
cmp edi, 4
jb 0x4f19a0
jmp 0x4f2006
cmp edi, 0xc8
jb 0x4f2006
cmp dword [ebp - 0x184], 0xcd
je 0x4f1a04
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0x118
push edx
call eax
add esp, 0xc
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [ecx]
push 1
push 0x144
lea edx, [ebp - 0x154]
push edx
push eax
call ecx
add esp, 0x10
jmp 0x4f2006
cmp ebx, 0xa4
jne 0x4f1a87
cmp dword [ebp - 0x16c], 3
jne 0x4f2006
mov eax, dword [ebp - 0x18c]
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [edx + 8]
lea eax, [eax + eax*2]
push 1
shl eax, 4
push eax
push ecx
call edx
add esp, 0xc
lea edi, [esi + 0xe774]
mov ebx, 3
push esi
call fcn.004e0df0
movzx eax, ax
mov dword [ebp - 0x168], eax
add esp, 4
add edi, 4
dec ebx
fild dword [ebp - 0x168]
fstp dword [edi - 4]
jne 0x4f1a61
jmp 0x4f2006
cmp ebx, 0xa7
jne 0x4f1baa
add edi, 0xffffff38
cmp edi, 0xc
jae 0x4f2006
fld dword [esi + 0xe774]
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x4f2006
mov ecx, dword [ebp - 0x190]
mov edx, dword [esi]
mov eax, dword [esi + 4]
and ecx, 0xff
mov bl, byte [ecx + 0x53a4b0]
mov ecx, dword [edx + 0x1c]
push eax
call ecx
mov edx, dword [esi]
mov ecx, dword [edx + 0x1c]
mov edi, eax
mov eax, dword [esi + 4]
push eax
call ecx
mov edx, dword [esi]
mov ecx, dword [edx + 0x1c]
xor edi, eax
mov eax, dword [esi + 4]
push eax
call ecx
mov edx, dword [esi]
mov ecx, dword [edx + 0x1c]
xor eax, edi
mov dword [ebp - 0x168], eax
mov eax, dword [esi + 4]
push eax
call ecx
xor eax, dword [ebp - 0x168]
add esp, 0x10
mov dl, byte [eax + 0x53a5b0]
mov byte [ebp - 0x17d], dl
mov dl, bl
add dl, dl
xor ecx, ecx
lea eax, [edx + ebx]
mov dl, byte [ebp - 0x17d]
shl al, 5
jmp 0x4f1b30
add dl, al
xor byte [ebp + ecx - 0x154], dl
inc ecx
add al, bl
cmp ecx, 0x144
jb 0x4f1b30
mov eax, dword [ebp - 0x184]
movsx eax, byte [eax + 0x53d1f8]
sub eax, 0x30
mov ecx, eax
and ecx, 1
xor edi, edi
and eax, 0xfffffffe
mov dword [ebp - 0x17c], ecx
lea ebx, [ebp + eax - 0x154]
jmp 0x4f1b70
push ebx
push esi
call fcn.004e0db0
mov edx, edi
shr edx, 1
xor edx, dword [ebp - 0x17c]
movzx ecx, ax
mov dword [ebp - 0x168], ecx
xor edx, edi
inc edi
fild dword [ebp - 0x168]
add esp, 8
add ebx, 2
fstp dword [esi + edx*4 + 0xe774]
cmp edi, 4
jb 0x4f1b70
jmp 0x4f2006
cmp ebx, 0x200
jne 0x4f1c1d
mov eax, dword [ebp - 0x170]
cmp eax, 3
jne 0x4f1bd4
push esi
call fcn.004e0e90
push esi
call fcn.004e0e90
mov dword [esi + 0x65a8], eax
jmp 0x4f2003
cmp eax, ecx
jne 0x4f2006
push esi
call fcn.004e0df0
push esi
movzx edi, ax
call fcn.004e0df0
movzx eax, ax
push esi
add edi, eax
call fcn.004e0df0
movzx ecx, ax
push esi
add edi, ecx
call fcn.004e0df0
movzx eax, ax
add eax, edi
cdq
and edx, 3
add eax, edx
add esp, 0x10
sar eax, 2
mov dword [esi + 0x65f8], eax
jmp 0x4f2006
cmp ebx, 0x201
jne 0x4f1c36
cmp dword [ebp - 0x170], ecx
je 0x4f2147
jmp 0x4f2006
cmp ebx, 0x220
jne 0x4f1c68
cmp dword [ebp - 0x170], 0x35
jne 0x4f2006
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 8]
push 1
push 0xe
push eax
call ecx
push esi
call fcn.004e3de0
add esp, 0x10
jmp 0x4f2006
cmp ebx, 0x401
jne 0x4f1cad
cmp dword [ebp - 0x170], ecx
jne 0x4f2006
push esi
call fcn.004e0e90
push esi
mov edi, eax
call fcn.004e0e90
push esi
add edi, eax
call fcn.004e0e90
push esi
add edi, eax
call fcn.004e0e90
add eax, edi
add esp, 0x10
shr eax, 2
mov dword [esi + 0x65f8], eax
jmp 0x4f2006
cmp ebx, 0xe01
jne 0x4f1d76
movsx edx, word [esi + 0x6274]
mov ecx, dword [esi]
push 1
mov dword [ebp - 0x16c], edx
mov edx, dword [esi + 4]
mov eax, 0x4949
mov word [esi + 0x6274], ax
mov eax, dword [ecx + 8]
push 0x16
push edx
call eax
add esp, 0xc
cmp dword [ebp - 0x170], 0x2c
mov dword [ebp - 0x17c], 0x16
jbe 0x4f1d68
push esi
call fcn.004e0e90
mov ecx, dword [esi]
mov edx, dword [esi + 4]
push 1
mov ebx, eax
mov eax, dword [ecx + 8]
push 0xe
push edx
mov dword [ebp - 0x178], ebx
call eax
push esi
call fcn.004e0e90
add esp, 0x14
lea edi, [eax - 4]
cmp ebx, 0x76a43207
jne 0x4f1d3c
push esi
call fcn.004e0df0
movzx ecx, ax
add esp, 4
mov dword [esi + 0x66c8], ecx
jmp 0x4f1d4d
mov edx, dword [esi]
mov eax, dword [esi + 4]
mov ecx, dword [edx + 8]
push 1
push edi
push eax
call ecx
add esp, 0xc
mov edx, dword [ebp - 0x17c]
lea edi, [edx + edi + 0x16]
mov dword [ebp - 0x17c], edi
add edi, 0x16
cmp edi, dword [ebp - 0x170]
jb 0x4f1cf7
mov ax, word [ebp - 0x16c]
mov word [esi + 0x6274], ax
cmp ebx, 0xe80
jne 0x4f1e10
cmp dword [ebp - 0x170], 0x100
jne 0x4f2006
cmp dword [ebp - 0x16c], 7
jne 0x4f2006
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, dword [ecx + 8]
push 1
push 0x30
push edx
call eax
push esi
call fcn.004e0df0
movzx ecx, ax
imul ecx, ecx, 0x1fc
mov dword [ebp - 0x168], ecx
push esi
fild dword [ebp - 0x168]
fmul qword [0x53d2b8]
fmul qword [0x5359b0]
fstp dword [esi + 0xe774]
call fcn.004e0df0
movzx edx, ax
add esp, 0x14
imul edx, edx, 0x17e
mov dword [ebp - 0x168], edx
fild dword [ebp - 0x168]
fmul qword [0x53d2b0]
fmul qword [0x5359b0]
fstp dword [esi + 0xe77c]
jmp 0x4f2006
cmp ebx, 0xf00
jne 0x4f1e78
cmp dword [ebp - 0x16c], 7
jne 0x4f2006
mov eax, dword [ebp - 0x170]
cmp eax, 0x266
jne 0x4f1e4c
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
push 1
push 0xb0
push ecx
call edx
add esp, 0xc
jmp 0x4f1fb5
cmp eax, 0x2de
je 0x4f1e5e
cmp eax, 0x5de
jne 0x4f21ad
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
push 1
push 0x94
push ecx
call edx
add esp, 0xc
jmp 0x4f1fb5
cmp ebx, 0x1011
jne 0x4f1e8e
cmp dword [ebp - 0x170], 9
je 0x4f1e96
jmp 0x4f2006
cmp ebx, 0x20400200
jne 0x4f1ef6
lea eax, [esi + 0xe794]
mov dword [ebp - 0x17c], eax
mov dword [ebp - 0x168], 3
lea esp, [esp]
mov edi, dword [ebp - 0x17c]
mov ebx, 3
jmp 0x4f1ec0
push esi
call fcn.004e0df0
movsx ecx, ax
mov dword [ebp - 0x174], ecx
add esp, 4
add edi, 4
dec ebx
fild dword [ebp - 0x174]
fmul qword [0x516da0]
fstp dword [edi - 4]
jne 0x4f1ec0
add dword [ebp - 0x17c], 0x10
dec dword [ebp - 0x168]
jne 0x4f1eb0
mov ebx, dword [ebp - 0x178]
cmp ebx, 0x1012
je 0x4f1f0c
cmp ebx, 0x20400600
jne 0x4f1f3c
mov edi, 4
cmp dword [ebp - 0x170], edi
jne 0x4f1f3c
mov dword [esi + 0x65f8], 0
push esi
call fcn.004e0df0
movzx edx, ax
add edx, edx
add edx, edx
add dword [esi + 0x65f8], edx
add esp, 4
dec edi
jne 0x4f1f23
cmp ebx, 0x1017
je 0x4f1f4c
cmp ebx, 0x20400100
jne 0x4f1f70
push esi
call fcn.004e0df0
movzx eax, ax
mov dword [ebp - 0x174], eax
add esp, 4
fild dword [ebp - 0x174]
fmul qword [0x516da0]
fstp dword [esi + 0xe774]
cmp ebx, 0x1018
je 0x4f1f80
cmp ebx, 0x20400100
jne 0x4f1fa4
push esi
call fcn.004e0df0
movzx ecx, ax
mov dword [ebp - 0x174], ecx
add esp, 4
fild dword [ebp - 0x174]
fmul qword [0x516da0]
fstp dword [esi + 0xe77c]
cmp ebx, 0x2011
jne 0x4f2006
cmp dword [ebp - 0x170], 2
jne 0x4f2006
mov edx, 0x4d4d
push esi
mov word [esi + 0x6274], dx
call fcn.004e0df0
movzx eax, ax
mov dword [ebp - 0x174], eax
push esi
fild dword [ebp - 0x174]
fmul qword [0x516da0]
fstp dword [esi + 0xe774]
call fcn.004e0df0
movzx ecx, ax
mov dword [ebp - 0x174], ecx
fild dword [ebp - 0x174]
fmul qword [0x516da0]
fstp dword [esi + 0xe77c]
add esp, 8
mov ebx, dword [ebp - 0x178]
mov edx, ebx
or edx, 0x70
cmp edx, 0x2070
jne 0x4f204f
cmp dword [ebp - 0x16c], 4
jne 0x4f204f
mov eax, dword [esi]
push 0
push esi
mov dword [ebp - 0x174], eax
call fcn.004e0e90
mov edi, dword [ebp + 0xc]
add eax, edi
add esp, 4
push eax
mov eax, dword [esi + 4]
push eax
mov eax, dword [ebp - 0x174]
mov ecx, dword [eax + 8]
call ecx
add esp, 0xc
jmp 0x4f2052
mov edi, dword [ebp + 0xc]
cmp ebx, 0x2010
jne 0x4f2076
cmp dword [ebp - 0x16c], 7
je 0x4f21ad
mov dword [esi + 0x2e7fc], 0x4e76e0
jmp 0x4f21ad
cmp ebx, 0x2020
jne 0x4f2097
push 0x102
push 0x101
push edi
push esi
call fcn.004f0df0
add esp, 0x10
jmp 0x4f21ad
cmp ebx, 0x2040
jne 0x4f20af
push ebx
push edi
push esi
call fcn.004f0e80
add esp, 0xc
jmp 0x4f21ad
cmp ebx, 0xb028
jne 0x4f20e7
mov ebx, dword [esi]
push 0
push esi
call fcn.004e0e90
mov edx, dword [esi + 4]
add esp, 4
push eax
mov eax, dword [ebx + 8]
push edx
call eax
push 0x89
push 0x88
push edi
push esi
call fcn.004f0df0
add esp, 0x1c
jmp 0x4f21ad
cmp ebx, 0x4001
jne 0x4f21ad
cmp dword [ebp - 0x170], 0x1f4
jbe 0x4f21ad
mov eax, dword [ebp - 0x170]
cmp eax, 0x246
jne 0x4f2117
mov eax, 0x32
jmp 0x4f2136
cmp eax, 0x28d
jne 0x4f2125
mov eax, 0x44
jmp 0x4f2136
sub eax, 0x1400
neg eax
sbb eax, eax
and eax, 0xfffffff0
add eax, 0x8e
push 1
push eax
mov edx, dword [esi + 4]
mov ecx, dword [esi]
mov eax, dword [ecx + 8]
push edx
call eax
add esp, 0xc
xor edi, edi
lea esp, [esp]
push esi
call fcn.004e0df0
movzx ecx, ax
mov edx, edi
shr edx, 1
mov dword [ebp - 0x174], ecx
xor edx, edi
inc edi
fild dword [ebp - 0x174]
add esp, 4
fstp dword [esi + edx*4 + 0xe774]
cmp edi, 4
jb 0x4f2150
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 8]
push 1
push 0x16
push ecx
call edx
add esp, 0xc
xor edi, edi
nop
push esi
call fcn.004e0df0
mov ecx, edi
shr ecx, 1
xor ecx, edi
inc edi
add esp, 4
mov word [esi + ecx*2 + 0xe76c], ax
cmp edi, 4
jb 0x4f2190
mov eax, dword [ebp - 0x194]
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [edx + 8]
push 0
push eax
push ecx
call edx
mov eax, dword [ebp - 0x188]
add esp, 0xc
test eax, eax
jne 0x4f1290
jmp 0x4f22bf
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov eax, 0x4d4d
mov word [esi + 0x6274], ax
mov eax, dword [ecx + 0x18]
push edx
call eax
add esp, 4
cmp eax, dword [esi + 0x65c0]
jge 0x4f22bf
lea ecx, [ecx]
cmp eax, 0x4000
jae 0x4f22bf
mov dword [ebp - 0x164], ebx
mov ebx, edi
mov edi, dword [ebp - 0x158]
push esi
call fcn.004e0df0
movzx ecx, ax
add esp, 4
mov dword [ebp - 0x158], ecx
cmp edi, 0x100
jne 0x4f22a5
cmp ecx, edi
jne 0x4f22a5
mov eax, dword [ebp - 0x164]
lea edx, [eax - 0x101]
cmp edx, 0x17e
ja 0x4f22a5
lea ecx, [ebx - 0x101]
cmp ecx, 0x17e
ja 0x4f22a5
mov dword [ebp - 0x188], eax
fild dword [ebp - 0x188]
test eax, eax
jns 0x4f226f
fadd dword [0x546df0]
fstp dword [esi + 0xe774]
mov edx, ebx
fld dword [0x53d2ac]
mov dword [ebp - 0x188], edx
fst dword [esi + 0xe778]
fild dword [ebp - 0x188]
test edx, edx
jns 0x4f2299
fadd dword [0x546df0]
fstp dword [esi + 0xe77c]
fstp dword [esi + 0xe780]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 0x18]
push ecx
call edx
add esp, 4
cmp eax, dword [esi + 0x65c0]
jl 0x4f2200
mov ax, word [ebp - 0x198]
mov word [esi + 0x6274], ax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0050bf32
mov esp, ebp
pop ebp
ret