Function at 0x412ff0
Capabilities:
Encrypt data using chaskey
Encrypt data using speck

Disassembly:
sub esp, 0xafc
mov eax, dword [esp + 0xb00]
push esi
push 0x507b58
lea ecx, [esp + 0x28]
xor esi, esi
push eax
push ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], esi
call fcn.00441e00
add esp, 0xc
cmp eax, esi
mov dword [esp + 0x10], eax
jne 0x413122
mov ecx, dword [esp + 0x24]
push ebx
push ebp
lea edx, [esp + 0x28]
push edi
push edx
lea eax, [esp + 0x58]
push 0x200
push eax
push ecx
call fcn.00403880
add esp, 0x10
cmp eax, esi
je 0x413090
mov esi, 0x507b54
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x41307b
test cl, cl
je 0x413077
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x41307b
add eax, 2
add esi, 2
test cl, cl
jne 0x413053
xor eax, eax
jmp 0x413080
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x41312a
mov dword [esp + 0x14], str.Unknown_.3do_file_format
mov eax, dword [esp + 0x14]
test eax, eax
je 0x41310e
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4130a9
push eax
call fcn.00419320
add esp, 4
mov cl, byte [esp + 0x54]
lea eax, [esp + 0x54]
test cl, cl
je 0x4130c5
cmp byte [eax], 9
jne 0x4130bd
mov byte [eax], 0x20
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4130b5
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x54]
push ecx
mov ecx, dword [esp + 0xb14]
push edx
push eax
push ecx
lea edx, [esp + 0x71c]
push str._s:_d:_n__s_near___s_.
push edx
call fcn.0044cb10
lea eax, [esp + 0x724]
push eax
call fcn.004036e0
mov eax, dword [esp + 0x38]
add esp, 0x1c
test eax, eax
jne 0x41310e
mov dword [esp + 0x1c], 2
lea ecx, [esp + 0x30]
push ecx
call fcn.004423a0
mov eax, dword [esp + 0x20]
add esp, 4
pop edi
pop ebp
pop ebx
pop esi
add esp, 0xafc
ret
mov eax, dword [esp + 0xb14]
mov ecx, dword [eax + 0x35c]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x58]
push 0x200
push eax
push ecx
call fcn.00403880
add esp, 0x10
test eax, eax
je 0x414f1f
mov cl, byte [eax]
test cl, cl
je 0x414f1f
mov esi, eax
cmp cl, 0x3d
je 0x413182
cmp cl, 9
je 0x413182
cmp cl, 0x20
je 0x413182
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x41316b
mov cl, byte [esi]
test cl, cl
je 0x414edd
cmp cl, 0x5b
mov byte [esi], 0
je 0x4131da
mov cl, byte [esi + 1]
inc esi
test cl, cl
je 0x4131ae
cmp cl, 9
je 0x4131a6
cmp cl, 0x20
jne 0x4131ae
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x41319c
mov cl, byte [esi]
cmp cl, 0x3d
jne 0x4131d1
mov cl, byte [esi + 1]
inc esi
test cl, cl
je 0x4131da
cmp cl, 9
je 0x4131c7
cmp cl, 0x20
jne 0x4131da
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x4131bd
jmp 0x4131da
cmp cl, 0x5b
jne 0x414edd
push eax
call fcn.00407050
add eax, 0xffffff0e
add esp, 4
cmp eax, 0x1a
ja case.0x4131f9.259
xor edx, edx
mov dl, byte [eax + 0x414f74]
jmp dword [edx*4 + 0x414f2c]
lea eax, [esp + 0x254]
mov ecx, 0xae
mov dword [esp + 0x18], eax
xor eax, eax
lea edi, [esp + 0x254]
mov dword [esp + 0x24], 0
rep stosd dword es:[edi], eax
mov dword [esp + 0x254], 3
jmp 0x4134d1
push 0
mov dword [esp + 0x1c], 0
call fcn.004192e0
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
je 0x414ddb
jmp 0x4134d1
mov ecx, dword [esp + 0xb14]
lea edi, [ecx + 4]
push edi
push esi
call fcn.004152b0
add esp, 8
test eax, eax
je 0x414edd
cmp dword [edi], 0
je 0x414de8
jmp 0x41313b
lea edx, [esp + 0x34]
push edx
push esi
call fcn.004152b0
add esp, 8
test eax, eax
je 0x414edd
mov eax, dword [esp + 0x34]
push eax
call fcn.00403700
mov esi, dword [esp + 0xb18]
add esp, 4
mov dword [esi + 0x320], eax
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4132c5
lea ecx, [esp + 0x34]
push ecx
call fcn.00442ee0
add esp, 4
mov eax, dword [esi + 0x320]
test eax, eax
jge 0x4132de
mov dword [esi + 0x320], 0
jmp 0x41313b
jle 0x41313b
push eax
call fcn.00404200
add esp, 4
jmp 0x41313b
lea edx, [esp + 0x38]
push edx
push esi
call fcn.004152b0
add esp, 8
test eax, eax
je 0x414edd
mov ecx, dword [esp + 0x38]
mov al, byte [ecx]
test al, al
je 0x413322
cmp al, 9
je 0x41331a
cmp al, 0x20
jne 0x413322
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x413312
mov al, byte [ecx]
mov esi, ecx
test al, al
je 0x413336
cmp al, 0x2e
je 0x413336
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x41332a
cmp byte [esi], 0x2e
jne 0x414edd
push ecx
mov byte [esi], 0
call fcn.00403700
mov ecx, dword [esp + 0xb18]
add esp, 4
mov dword [ecx + 0x39c], eax
lea eax, [esi + 1]
mov byte [esi], 0x2e
cmp byte [eax], 0
je 0x414edd
push eax
call fcn.00403700
mov edx, dword [esp + 0xb18]
add esp, 4
mov dword [edx + 0x3a0], eax
mov eax, dword [esp + 0x38]
test eax, eax
je 0x41313b
lea eax, [esp + 0x38]
push eax
call fcn.00442ee0
add esp, 4
jmp 0x41313b
lea ecx, [esp + 0x3c]
push ecx
push esi
call fcn.004152b0
add esp, 8
test eax, eax
je 0x414edd
mov edi, dword [esp + 0x3c]
test edi, edi
je 0x414df7
mov edx, dword [esp + 0xb14]
or ecx, 0xffffffff
xor eax, eax
add edx, 0x10
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x3c]
push ecx
call fcn.00442ee0
add esp, 4
jmp 0x41313b
push esi
call fcn.00403700
push eax
call fcn.00403190
add esp, 8
test eax, eax
je 0x414e06
jmp 0x41313b
call fcn.004031b0
push eax
call fcn.004031c0
jmp 0x41349d
call fcn.004031b0
push eax
call fcn.004031c0
add eax, 4
jmp 0x41349d
call fcn.004031b0
push eax
call fcn.004031c0
add eax, 8
jmp 0x41349d
call fcn.004031b0
push eax
call fcn.004031c0
add eax, 0xc
jmp 0x41349d
call fcn.004031b0
push eax
call fcn.004031c0
add eax, 0x10
jmp 0x41349d
call fcn.004031b0
push eax
call fcn.004031c0
add eax, 0x14
jmp 0x41349d
call fcn.004031b0
push eax
call fcn.004031c0
add eax, 0x18
jmp 0x41349d
call fcn.004031b0
push eax
call fcn.004031c0
add eax, 0x1c
jmp 0x41349d
call fcn.004031b0
push eax
call fcn.004031c0
add eax, 0x20
push eax
push esi
call fcn.00406ce0
add esp, 0xc
test eax, eax
je 0x414edd
jmp 0x4134d1
call fcn.004031b0
push eax
call fcn.004031c0
add eax, 0x24
push eax
push esi
call fcn.00406ce0
add esp, 0xc
test eax, eax
je 0x414edd
xor ebp, ebp
mov dword [esp + 0x10], ebp
mov dword [esp + 0x20], ebp
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x58]
push 0x200
push eax
push ecx
call fcn.00403880
xor edi, edi
add esp, 0x10
cmp eax, edi
je 0x414f05
mov cl, byte [eax]
test cl, cl
je 0x414f05
cmp cl, 0x5d
jne 0x413520
cmp dword [esp + 0x10], edi
je 0x414b9e
mov dword [esp + 0x10], edi
jmp case.0x414a59.5
mov esi, eax
cmp cl, 0x3d
je 0x413539
cmp cl, 9
je 0x413539
cmp cl, 0x20
je 0x413539
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x413522
mov bl, byte [esi]
test bl, bl
je 0x414edd
push eax
mov byte [esi], 0
call fcn.00407050
add esp, 4
mov edi, eax
test bl, bl
mov dword [esp + 0x40], edi
mov byte [esi], bl
je 0x414edd
mov al, bl
cmp al, 9
je 0x413569
cmp al, 0x20
jne 0x413571
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x413561
cmp edi, 3
jne 0x413635
mov al, byte [esi]
test al, al
je 0x413590
cmp al, 9
je 0x413588
cmp al, 0x20
jne 0x413590
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x413580
mov al, byte [esi]
mov ecx, esi
test al, al
je 0x4135ac
cmp al, 0x3d
je 0x4135ac
cmp al, 9
je 0x4135ac
cmp al, 0x20
je 0x4135ac
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x413598
mov edx, dword [esp + 0xb14]
mov bl, byte [esi]
push ecx
push edx
mov byte [esi], 0
call fcn.00415310
add esp, 8
test eax, eax
je 0x414e5c
mov ecx, dword [esp + 0x18]
test bl, bl
mov edx, dword [ecx + 0x11c]
mov dword [eax + 8], edx
mov dword [ecx + 0x11c], eax
mov byte [esi], bl
je 0x4135f7
mov cl, bl
cmp cl, 9
je 0x4135ef
cmp cl, 0x20
jne 0x4135f7
mov cl, byte [esi + 1]
inc esi
test cl, cl
jne 0x4135e5
cmp byte [esi], 0
je case.0x414a59.5
mov edi, dword [eax + 0xe8]
test edi, edi
je case.0x414a59.5
cmp dword [edi], 0x13
jne 0x413629
mov eax, dword [edi + 0x80]
test eax, eax
je 0x413629
push esi
call fcn.00403700
add esp, 4
mov dword [edi + 0x30], eax
mov edi, dword [edi + 4]
test edi, edi
jne 0x41360e
jmp case.0x414a59.5
cmp edi, 5
je 0x414ae9
cmp edi, 4
je 0x414ae9
cmp byte [esi], 0x3d
jne 0x414edd
mov al, byte [esi + 1]
inc esi
test al, al
je 0x413668
cmp al, 9
je 0x413660
cmp al, 0x20
jne 0x413668
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x413658
mov al, byte [esi]
mov edi, esi
test al, al
je 0x413678
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x413670
mov al, byte [esi - 1]
dec esi
cmp al, 9
je 0x413678
cmp al, 0x20
je 0x413678
mov ebx, dword [esp + 0x18]
mov byte [esi + 1], 0
test ebx, ebx
je 0x413702
mov eax, dword [ebx + 0xc0]
test eax, eax
jne 0x413702
cmp dword [esp + 0x40], 0xf9
jne 0x414e69
mov eax, dword [esp + 0xb14]
push edi
mov ecx, dword [eax + 0x35c]
push ecx
call fcn.004058c0
add esp, 8
mov dword [ebx + 0xc0], eax
test eax, eax
je 0x414e76
lea edx, [esp + 0x50c]
push ebx
mov dword [ebx + 0xc4], edx
mov byte [esp + 0x510], 0
call fcn.00417a20
push ebx
call fcn.00412840
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x413090
jmp case.0x414a59.5
mov eax, dword [esp + 0x40]
add eax, 0xfffffff7
cmp eax, 0xf8
ja case.0x41371c.126
xor ecx, ecx
mov cl, byte [eax + 0x415168]
jmp dword [ecx*4 + 0x414f90]
test ebp, ebp
je 0x414edd
cmp dword [ebp], 0xe
jne 0x414edd
push edi
call fcn.00403700
add esp, 4
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 0xe
jmp 0x414993
test ebp, ebp
je 0x414edd
cmp dword [ebp], 0xe
jne 0x414edd
push edi
call fcn.00403710
mov ecx, dword [ebp + 0x20]
add esp, 4
xor eax, ecx
and eax, 1
xor eax, ecx
mov dword [ebp + 0x20], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 0xe
jne 0x414edd
push edi
call fcn.00403710
mov edx, dword [ebp + 0x20]
and eax, 1
shl eax, 1
and edx, 0xfffffffd
add esp, 4
or eax, edx
mov dword [ebp + 0x20], eax
jmp case.0x414a59.5
mov esi, dword [esp + 0x24]
test esi, esi
je 0x4137cd
push edi
call fcn.00403700
add esp, 4
mov dword [esi + 4], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
mov eax, dword [ebp]
cmp eax, 4
je 0x4137f0
cmp eax, 3
je 0x4137eb
cmp eax, 5
jne 0x414edd
cmp eax, 4
jne 0x413801
push edi
call fcn.00403700
add esp, 4
mov dword [ebp + 0x1c], eax
jmp case.0x414a59.5
cmp eax, 3
push edi
jne 0x413736
call fcn.00403700
add esp, 4
mov dword [ebp + 0x30], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 5
jne 0x414edd
push edi
call fcn.00403710
mov ecx, dword [ebp + 0x14]
add esp, 4
xor eax, ecx
and eax, 1
xor eax, ecx
mov dword [ebp + 0x14], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 5
jne 0x414edd
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebp + 0x20]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 5
jmp 0x414993
test ebp, ebp
je 0x414edd
cmp dword [ebp], 5
jmp 0x4141db
test ebp, ebp
je 0x414edd
cmp dword [ebp], 4
jne 0x414edd
push edi
call fcn.00403700
mov ecx, dword [ebp + 0x10]
and eax, 1
shl eax, 1
and ecx, 0xfffffffd
add esp, 4
or eax, ecx
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 4
jne 0x414edd
push edi
call fcn.00403710
mov edx, dword [ebp + 0x10]
and eax, 1
shl eax, 2
and edx, 0xfffffffb
add esp, 4
or eax, edx
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 4
jne 0x414edd
push edi
call fcn.00403710
mov ecx, dword [ebp + 0x10]
and eax, 1
shl eax, 5
and ecx, 0xffffffdf
add esp, 4
or eax, ecx
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 4
jne 0x414edd
push edi
call fcn.00403710
mov edx, dword [ebp + 0x10]
and eax, 1
shl eax, 3
and edx, 0xfffffff7
add esp, 4
or eax, edx
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 4
jne 0x414edd
push edi
call fcn.00403710
mov ecx, dword [ebp + 0x10]
and eax, 1
shl eax, 4
and ecx, 0xffffffef
add esp, 4
or eax, ecx
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
mov eax, dword [ebp]
cmp eax, 4
je 0x4139b3
cmp eax, 3
jne 0x414edd
cmp eax, 4
jne 0x4139d2
push edi
call fcn.00403710
mov edx, dword [ebp + 0x10]
and eax, 1
shl eax, 6
and edx, 0xffffffbf
add esp, 4
or eax, edx
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
push edi
call fcn.00403710
mov ecx, dword [ebp + 0x10]
and eax, 1
shl eax, 6
and ecx, 0xffffffbf
add esp, 4
or eax, ecx
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
mov eax, dword [ebp]
cmp eax, 4
je 0x413a0f
cmp eax, 3
jne 0x414edd
cmp eax, 4
jne 0x413a2e
push edi
call fcn.00403710
mov edx, dword [ebp + 0x10]
and eax, 1
shl eax, 7
and dl, 0x7f
add esp, 4
or eax, edx
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
push edi
call fcn.00403710
mov ecx, dword [ebp + 0x10]
and eax, 1
shl eax, 7
and cl, 0x7f
add esp, 4
or eax, ecx
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
mov eax, dword [ebp]
cmp eax, 4
je 0x413a6b
cmp eax, 3
jne 0x414edd
cmp eax, 4
jne 0x413a8a
push edi
call fcn.00403710
mov edx, dword [ebp + 0x10]
and eax, 1
shl eax, 8
and dh, 0xfe
add esp, 4
or eax, edx
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
push edi
call fcn.00403710
mov ecx, dword [ebp + 0x10]
and eax, 1
shl eax, 8
and ch, 0xfe
add esp, 4
or eax, ecx
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
add ebx, 0xc
push ebx
push edi
call fcn.00406d40
jmp 0x414382
mov eax, dword [esp + 0x24]
test eax, eax
je 0x414edd
lea edx, [esp + 0x4c]
push edx
push edi
call fcn.00406d40
add esp, 8
test eax, eax
je 0x414edd
fld dword [esp + 0x4c]
call fcn.004f7d68
fld dword [esp + 0x50]
mov dword [esp + 0x44], eax
call fcn.004f7d68
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x48], eax
lea eax, [esp + 0x44]
push eax
push ecx
call fcn.00419380
add esp, 8
test eax, eax
je 0x414e9c
jmp case.0x414a59.5
mov eax, dword [esp + 0x20]
test eax, eax
je 0x413bbe
mov edx, dword [esp + 0xb14]
push edi
mov eax, dword [edx + 0x35c]
push eax
call fcn.004058c0
mov esi, eax
add esp, 8
test esi, esi
je 0x414ea9
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
cmp ecx, 0xc
jne 0x413bad
mov ecx, dword [eax + 0x10]
test ecx, ecx
jne 0x413b5a
mov dword [eax + 0x10], esi
jmp case.0x414a59.5
cmp ecx, esi
je case.0x414a59.5
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0xe8]
test eax, eax
je 0x413b8a
cmp dword [eax + 0x10], esi
je 0x413b7e
mov eax, dword [eax + 4]
test eax, eax
jne 0x413b70
jmp 0x413b8a
test eax, eax
mov dword [esp + 0x10], eax
jne case.0x414a59.5
mov edx, dword [esp + 0x18]
push edx
push 0xc
call fcn.00415420
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x414df7
mov dword [eax + 0x10], esi
jmp case.0x414a59.5
cmp ecx, 0xa
jne 0x414eb6
mov dword [eax + 0x10], esi
jmp case.0x414a59.5
test ebp, ebp
jne 0x414ec3
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, dword [ebx + 0xc4]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp case.0x414a59.5
mov ecx, dword [ebx + 4]
mov edx, 1
sub ecx, 0x10
shl edx, cl
test dl, 0x1e
jne 0x413090
lea eax, [esp + 0x14]
add ebx, 0x190
push eax
push edi
push ebx
call fcn.00408700
add esp, 0xc
jmp 0x4140f7
push edi
call fcn.00403700
add esp, 4
mov dword [ebx + 0x154], eax
jmp case.0x414a59.5
push edi
call fcn.00406be0
mov dword [ebx + 0x14c], eax
add eax, 3
cdq
mov ecx, 0x18
add esp, 4
idiv ecx
mov dword [ebx + 0x150], edx
jmp case.0x414a59.5
add ebx, 0x140
push ebx
push edi
call fcn.00406d40
jmp 0x414382
mov ecx, dword [ebx + 4]
mov edx, 1
sub ecx, 0x10
shl edx, cl
test dl, 0x1e
jne 0x414edd
mov eax, dword [esp + 0x18]
add eax, 0x198
push eax
jmp 0x41437c
mov ecx, dword [ebx + 4]
mov edx, 1
sub ecx, 0x10
shl edx, cl
test dl, 0x1e
jne 0x414edd
mov eax, dword [esp + 0x18]
add eax, 0x1a8
push eax
jmp 0x41437c
mov ecx, dword [ebx + 4]
mov edx, 1
sub ecx, 0x10
shl edx, cl
test dl, 0x1e
jne 0x414edd
mov eax, dword [esp + 0x18]
add eax, 0x1a4
push eax
jmp 0x41437c
mov ecx, dword [ebx + 4]
mov edx, 1
sub ecx, 0x10
shl edx, cl
test dl, 0x1e
jne 0x414edd
mov eax, dword [esp + 0x18]
add eax, 0x19c
push eax
jmp 0x41437c
mov ecx, dword [ebx + 4]
mov edx, 1
sub ecx, 0x10
shl edx, cl
test dl, 0x1e
jne 0x414edd
mov eax, dword [esp + 0x18]
add eax, 0x1a0
push eax
jmp 0x41437c
add ebx, 0xd8
push ebx
jmp 0x41437c
add ebx, 0xdc
push ebx
jmp 0x41437c
add ebx, 0xe0
push ebx
jmp 0x41437c
add ebx, 0xe4
push ebx
jmp 0x41437c
push edi
call fcn.00403700
add esp, 4
mov dword [ebx + 0xcc], eax
jmp case.0x414a59.5
push edi
call fcn.00403700
add esp, 4
mov dword [ebx + 0xc8], eax
jmp case.0x414a59.5
push edi
call fcn.004197a0
add esp, 4
mov dword [ebx + 0xd4], eax
jmp case.0x414a59.5
push edi
call fcn.00403700
add esp, 4
mov dword [ebx + 0xec], eax
jmp case.0x414a59.5
push edi
call fcn.00403700
add esp, 4
mov dword [ebx + 0xf0], eax
jmp case.0x414a59.5
push edi
call fcn.00403700
add esp, 4
mov dword [ebx + 0x120], eax
jmp case.0x414a59.5
add ebx, 0x158
push ebx
push edi
call fcn.00406d40
jmp 0x414382
add ebx, 0x160
push ebx
push edi
call fcn.00406d40
jmp 0x414382
add ebx, 0x168
push ebx
jmp 0x41437c
add ebx, 0x174
push ebx
jmp 0x41437c
add ebx, 0x17c
push ebx
jmp 0x41437c
push edi
call fcn.00403700
add esp, 4
mov dword [ebx + 0x184], eax
jmp case.0x414a59.5
push edi
call fcn.00403710
mov ecx, dword [ebx + 0x128]
and eax, 1
shl eax, 3
and ecx, 0xfffffff7
add esp, 4
or eax, ecx
mov dword [ebx + 0x128], eax
jmp case.0x414a59.5
push edi
call fcn.00403710
mov edx, dword [ebx + 0x128]
and eax, 1
shl eax, 5
and edx, 0xffffffdf
add esp, 4
or eax, edx
mov dword [ebx + 0x128], eax
jmp case.0x414a59.5
push edi
call fcn.00403710
mov ecx, dword [ebx + 0x128]
and eax, 1
shl eax, 0xa
and ch, 0xfb
add esp, 4
or eax, ecx
mov dword [ebx + 0x128], eax
jmp case.0x414a59.5
push edi
call fcn.00403710
mov edx, dword [ebx + 0x128]
and eax, 1
shl eax, 0xc
and dh, 0xef
add esp, 4
or eax, edx
mov dword [ebx + 0x128], eax
jmp case.0x414a59.5
push edi
call fcn.00403710
mov ecx, dword [ebx + 0x128]
and eax, 1
shl eax, 0xd
and ch, 0xdf
add esp, 4
or eax, ecx
mov dword [ebx + 0x128], eax
jmp case.0x414a59.5
push edi
call fcn.00403710
mov edx, dword [ebx + 0x128]
and eax, 1
shl eax, 0xe
and dh, 0xbf
add esp, 4
or eax, edx
mov dword [ebx + 0x128], eax
jmp case.0x414a59.5
push edi
call fcn.00403710
mov ecx, dword [ebx + 0x128]
and eax, 1
shl eax, 0xb
and ch, 0xf7
add esp, 4
or eax, ecx
mov dword [ebx + 0x128], eax
jmp case.0x414a59.5
push edi
call fcn.00403710
mov edx, dword [ebx + 0x128]
and eax, 1
shl eax, 0xf
and dh, 0x7f
add esp, 4
or eax, edx
mov dword [ebx + 0x128], eax
jmp case.0x414a59.5
push edi
call fcn.00403710
mov ecx, dword [ebx + 0x128]
and eax, 1
shl eax, 0x13
and ecx, 0xfff7ffff
add esp, 4
or eax, ecx
mov dword [ebx + 0x128], eax
jmp case.0x414a59.5
push edi
call fcn.00403710
mov edx, dword [ebx + 0x128]
and eax, 1
shl eax, 0x14
and edx, 0xffefffff
add esp, 4
or eax, edx
mov dword [ebx + 0x128], eax
jmp case.0x414a59.5
push edi
call fcn.00403710
mov ecx, dword [ebx + 0x128]
and eax, 1
shl eax, 0x15
and ecx, 0xffdfffff
add esp, 4
or eax, ecx
mov dword [ebx + 0x128], eax
jmp case.0x414a59.5
push edi
call fcn.00403700
add esp, 4
mov dword [ebx + 0x108], eax
jmp case.0x414a59.5
add ebx, 0x110
push ebx
jmp 0x41437c
mov ecx, dword [ebx + 4]
mov edx, 1
sub ecx, 0x10
shl edx, cl
test dl, 0x1e
jne 0x413090
push edi
call fcn.00403700
add esp, 4
mov dword [ebx + 0x21c], eax
jmp case.0x414a59.5
mov ecx, dword [ebx + 4]
mov eax, 1
sub ecx, 0x10
shl eax, cl
test al, 0x1e
jne 0x413090
mov al, byte [edi]
mov esi, edi
test al, al
je 0x414037
cmp al, 0x2c
je 0x414037
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x41402b
cmp byte [esi], 0x2c
jne 0x414edd
push edi
mov byte [esi], 0
call fcn.00403700
mov ecx, dword [esp + 0x1c]
add esp, 4
inc esi
mov dword [ecx + 0x228], eax
mov dword [ecx + 0x230], eax
mov dword [ecx + 0x234], eax
mov dword [ecx + 0x23c], eax
mov al, byte [esi]
test al, al
je 0x41407f
cmp al, 9
je 0x414077
cmp al, 0x20
jne 0x41407f
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x41406f
mov al, byte [esi]
test al, al
je 0x414edd
mov ecx, esi
cmp al, 0x3d
je 0x41409f
cmp al, 9
je 0x41409f
cmp al, 0x20
je 0x41409f
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x41408b
push ecx
mov byte [esi], 0
call fcn.00403700
mov ecx, dword [esp + 0x1c]
add esp, 4
mov dword [ecx + 0x22c], eax
mov dword [ecx + 0x238], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 8
jne 0x414edd
lea ecx, [ebp + 0x10]
push ecx
jmp 0x4140ee
test ebp, ebp
je 0x414edd
cmp dword [ebp], 8
jne 0x414edd
lea edx, [ebp + 0x18]
push edx
push edi
call fcn.00406d40
add esp, 8
test eax, eax
je 0x413090
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
mov eax, dword [ebp]
cmp eax, 8
je 0x414126
cmp eax, 0x14
jne 0x414edd
cmp eax, 8
jne 0x414976
push edi
call fcn.00403700
add esp, 4
mov dword [ebp + 0x20], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
mov eax, dword [ebp]
cmp eax, 6
je 0x414155
cmp eax, 7
jne 0x414edd
cmp eax, 6
jne 0x41416b
mov eax, dword [esp + 0x28]
push edi
push eax
call fcn.004058c0
add esp, 8
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
mov ecx, dword [esp + 0x28]
push edi
push ecx
call fcn.004058c0
add esp, 8
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
mov eax, dword [ebp]
cmp eax, 6
je 0x41419a
cmp eax, 7
jne 0x414edd
push edi
call fcn.00403700
cdq
mov ecx, 0x169
add esp, 4
idiv ecx
mov eax, 0x88888889
mov ecx, edx
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp + 0x18], edx
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
mov eax, dword [ebp]
cmp eax, 6
je 0x4141e1
cmp eax, 7
jne 0x414edd
push edi
call fcn.00403700
add esp, 4
mov dword [ebp + 0x1c], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
mov eax, dword [ebp]
cmp eax, 6
je 0x414215
cmp eax, 7
je 0x414210
cmp eax, 0xe
jne 0x414edd
cmp eax, 6
jne 0x414226
push edi
call fcn.00403700
add esp, 4
mov dword [ebp + 0x20], eax
jmp case.0x414a59.5
cmp eax, 7
jne 0x4141e1
push edi
call fcn.00403700
add esp, 4
mov dword [ebp + 0x20], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
mov eax, dword [ebp]
cmp eax, 6
je 0x414255
cmp eax, 7
jne 0x414edd
push edi
call fcn.00403700
add esp, 4
mov dword [ebp + 0x28], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 9
jmp 0x414993
test ebp, ebp
je 0x414edd
cmp dword [ebp], 9
jmp 0x4149dc
test ebp, ebp
je 0x414edd
cmp dword [ebp], 9
jne 0x414edd
push edi
call fcn.00403710
mov ecx, dword [ebp + 0x30]
and eax, 1
shl eax, 1
and ecx, 0xfffffffd
add esp, 4
or eax, ecx
mov dword [ebp + 0x30], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 9
jne 0x414edd
push edi
call fcn.00403710
mov edx, dword [ebp + 0x30]
and eax, 1
shl eax, 2
and edx, 0xfffffffb
add esp, 4
or eax, edx
mov dword [ebp + 0x30], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 9
jmp 0x4145a3
test ebp, ebp
je 0x414edd
cmp dword [ebp], 9
jne 0x414edd
push edi
call fcn.00403710
mov ecx, dword [ebp + 0x30]
add esp, 4
mov edx, ecx
xor edx, eax
and edx, 1
xor edx, ecx
mov dword [ebp + 0x30], edx
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 9
jne 0x414edd
push edi
call fcn.00403710
mov ecx, dword [ebp + 0x30]
and eax, 1
shl eax, 3
and ecx, 0xfffffff7
add esp, 4
or eax, ecx
mov dword [ebp + 0x30], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
mov eax, dword [ebp]
cmp eax, 0xb
je 0x414378
cmp eax, 0x12
jne 0x414edd
cmp eax, 0xb
jne 0x414392
lea edx, [ebp + 0x14]
push edx
push edi
call fcn.00406ce0
add esp, 8
test eax, eax
je 0x414edd
jmp case.0x414a59.5
lea eax, [ebp + 0x18]
push eax
jmp 0x41437c
test ebp, ebp
je 0x414edd
mov eax, dword [ebp]
cmp eax, 0xb
je 0x4143ba
cmp eax, 0x12
jne 0x414edd
cmp eax, 0xb
jne 0x4141e1
push edi
call fcn.00403700
add esp, 4
mov dword [ebp + 0x18], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 0xb
jne 0x414edd
lea ecx, [ebp + 0x14]
push ecx
jmp 0x41437c
test ebp, ebp
je 0x414edd
cmp dword [ebp], 0xb
jmp 0x4149dc
test ebp, ebp
je 0x414edd
cmp dword [ebp], 0xb
jne 0x414edd
push edi
call fcn.00403710
mov ecx, dword [ebp + 0x24]
add esp, 4
mov edx, ecx
xor edx, eax
and edx, 1
xor edx, ecx
mov dword [ebp + 0x24], edx
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 0xb
jne 0x414edd
push edi
call fcn.00403710
mov ecx, dword [ebp + 0x24]
and eax, 1
shl eax, 1
and ecx, 0xfffffffd
add esp, 4
or eax, ecx
mov dword [ebp + 0x24], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 0xb
jne 0x414edd
mov edx, dword [esp + 0x28]
push edi
push edx
call fcn.004058c0
add esp, 8
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
mov eax, dword [ebp]
cmp eax, 0xf
je 0x414499
cmp eax, 0xe
jne 0x414edd
cmp eax, 0xf
jne 0x4144b4
push edi
call fcn.00403710
mov ecx, dword [ebp + 0x10]
add esp, 4
xor eax, ecx
and eax, 1
xor eax, ecx
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
push edi
call fcn.00403710
mov ecx, dword [ebp + 0x20]
and eax, 1
shl eax, 2
and ecx, 0xfffffffb
add esp, 4
or eax, ecx
mov dword [ebp + 0x20], eax
jmp case.0x414a59.5
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414edd
mov edx, eax
cmp dword [edx], 3
jne 0x414edd
push edi
call fcn.00403710
jmp 0x4138b9
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414edd
mov edx, eax
cmp dword [edx], 3
jne 0x414edd
push edi
call fcn.00403710
mov ecx, dword [ebp + 0x10]
and eax, 1
shl eax, 2
and ecx, 0xfffffffb
add esp, 4
or eax, ecx
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414edd
mov edx, eax
cmp dword [edx], 3
jne 0x414edd
push edi
call fcn.00403710
mov ecx, dword [ebp + 0x10]
and eax, 1
shl eax, 3
and ecx, 0xfffffff7
add esp, 4
or eax, ecx
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414edd
mov edx, eax
cmp dword [edx], 3
jne 0x414edd
push edi
call fcn.00403710
mov ecx, dword [ebp + 0x10]
and eax, 1
shl eax, 4
and ecx, 0xffffffef
add esp, 4
or eax, ecx
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 3
jne 0x414edd
push edi
call fcn.00403700
add esp, 4
mov dword [ebp + 0x2c], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
mov eax, dword [ebp]
cmp eax, 3
je 0x4145dd
cmp eax, 4
je 0x4145dd
cmp eax, 0x14
je 0x4145dd
cmp eax, 9
jne 0x414edd
push edi
call fcn.00403700
mov ecx, dword [ebp]
add esp, 4
add ecx, 0xfffffffd
cmp ecx, 0x11
ja case.0x4145f9.6
xor edx, edx
mov dl, byte [ecx + 0x415274]
jmp dword [edx*4 + 0x415264]
mov dword [ebp + 0x14], eax
jmp case.0x414a59.5
push str.Unexpected_type.
call fcn.004036b0
add esp, 4
jmp case.0x414a59.5
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414edd
cmp dword [eax], 3
jne 0x414edd
push edi
call fcn.00403710
mov ecx, dword [ebp + 0x10]
and eax, 1
shl eax, 5
and ecx, 0xffffffdf
add esp, 4
or eax, ecx
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414edd
mov edx, eax
cmp dword [edx], 3
jne 0x414edd
push 0
push edi
call fcn.00403730
add esp, 8
mov dword [ebp + 0x20], eax
jmp case.0x414a59.5
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414edd
cmp dword [eax], 3
jne 0x414edd
push 0
push edi
call fcn.00403730
add esp, 8
mov dword [ebp + 0x1c], eax
jmp case.0x414a59.5
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414edd
mov ecx, eax
cmp dword [ecx], 3
jne 0x414edd
lea edx, [ebp + 0x24]
push edx
push edi
call fcn.00406d40
add esp, 8
test eax, eax
je 0x414edd
jmp case.0x414a59.5
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414edd
cmp dword [eax], 0x13
jne 0x414edd
jmp 0x414499
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414edd
mov ecx, eax
cmp dword [ecx], 0x13
jne 0x414edd
push edi
call fcn.00403710
mov edx, dword [ebp + 0x10]
and eax, 1
shl eax, 2
and edx, 0xfffffffb
add esp, 4
or eax, edx
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414edd
cmp dword [eax], 0x13
jne 0x414edd
push edi
call fcn.00403710
mov ecx, dword [ebp + 0x10]
and eax, 1
shl eax, 3
and ecx, 0xfffffff7
add esp, 4
or eax, ecx
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414edd
mov edx, eax
cmp dword [edx], 0x13
jmp 0x41424f
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414edd
cmp dword [eax], 0x13
jmp 0x414970
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414edd
mov ecx, eax
cmp dword [ecx], 0x13
jmp 0x414993
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414edd
mov edx, eax
cmp dword [edx], 0x13
jmp 0x4149dc
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414edd
cmp dword [eax], 0x13
jmp 0x4141db
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414edd
mov ecx, eax
cmp dword [ecx], 0x13
jne 0x414edd
mov edx, dword [esp + 0x28]
push edi
push edx
call fcn.004058c0
add esp, 8
mov dword [ebp + 0x24], eax
jmp case.0x414a59.5
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414edd
cmp dword [eax], 0x13
jne 0x414edd
push edi
call fcn.00403700
add esp, 4
mov dword [ebp + 0x30], eax
jmp case.0x414a59.5
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414edd
mov ecx, eax
cmp dword [ecx], 0x13
jne 0x414edd
push edi
call fcn.00403700
add esp, 4
mov dword [ebp + 0x34], eax
jmp case.0x414a59.5
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414edd
mov edx, eax
cmp dword [edx], 0x13
jne 0x414edd
lea eax, [ebp + 0x78]
push eax
push edi
call fcn.00406de0
add esp, 8
test eax, eax
je 0x413090
jmp case.0x414a59.5
mov eax, dword [esp + 0x10]
test eax, eax
je 0x414edd
mov ecx, eax
cmp dword [ecx], 0x13
jne 0x414edd
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebp + 0x38]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 0x12
jne 0x414edd
mov ecx, dword [esp + 0x28]
push edi
push ecx
call fcn.004058c0
add esp, 8
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
test ebx, ebx
je 0x4148ff
mov eax, dword [esp + 0x20]
test eax, eax
je 0x414edd
mov edx, eax
cmp dword [edx], 0xc
jne 0x414edd
push edi
call fcn.00403700
mov ecx, dword [esp + 0x24]
add esp, 4
mov dword [ecx + 0x14], eax
jmp case.0x414a59.5
mov eax, dword [esp + 0x24]
test eax, eax
je 0x414edd
jmp case.0x414a59.5
mov eax, dword [esp + 0x20]
test eax, eax
je 0x414edd
mov edx, eax
cmp dword [edx], 0xc
jne 0x414edd
push edi
call fcn.00403700
mov ecx, dword [esp + 0x24]
add esp, 4
mov dword [ecx + 0x18], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 2
jne 0x414edd
mov edx, dword [esp + 0x28]
push edi
push edx
call fcn.004058c0
add esp, 8
mov dword [ebp + 0x10], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 2
jne 0x414edd
push edi
call fcn.00403700
add esp, 4
mov dword [ebp + 0x14], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 2
jne 0x414edd
push edi
call fcn.00403700
add esp, 4
mov dword [ebp + 0x18], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 2
jne 0x414edd
push edi
call fcn.00403700
add esp, 4
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x1c], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 2
jne 0x414edd
push edi
call fcn.00403700
add esp, 4
mov dword [ebp + 0x20], eax
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 2
jne 0x414edd
push edi
call fcn.00403700
mov ecx, dword [ebp + 0x28]
add esp, 4
mov edx, ecx
xor edx, eax
and edx, 1
xor edx, ecx
mov dword [ebp + 0x28], edx
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
mov eax, dword [ebp]
cmp eax, 2
je 0x414a45
cmp eax, 3
je 0x414a45
cmp eax, 0xd
je 0x414a45
cmp eax, 4
jne 0x414edd
add eax, 0xfffffffe
cmp eax, 0xb
ja case.0x414a59.5
xor ecx, ecx
mov cl, byte [eax + 0x415298]
jmp dword [ecx*4 + 0x415288]
push edi
call fcn.00403710
mov edx, dword [ebp + 0x28]
and eax, 1
shl eax, 1
and edx, 0xfffffffd
add esp, 4
or eax, edx
mov dword [ebp + 0x28], eax
jmp case.0x414a59.5
push edi
call fcn.00403710
mov ecx, dword [ebp + 0x10]
add esp, 4
mov edx, ecx
xor edx, eax
and edx, 1
xor edx, ecx
mov dword [ebp + 0x10], edx
jmp case.0x414a59.5
push edi
call fcn.00403710
mov ecx, dword [ebp + 0x20]
add esp, 4
mov edx, ecx
xor edx, eax
and edx, 1
xor edx, ecx
mov dword [ebp + 0x20], edx
jmp case.0x414a59.5
test ebp, ebp
je 0x414edd
cmp dword [ebp], 2
jne 0x414edd
push edi
call fcn.00403700
mov ecx, dword [ebp + 0x28]
and eax, 1
shl eax, 2
and ecx, 0xfffffffb
add esp, 4
or eax, ecx
mov dword [ebp + 0x28], eax
jmp case.0x414a59.5
mov al, byte [esi]
mov ecx, esi
test al, al
je 0x414afd
cmp al, 0x5b
je 0x414afd
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x414af1
cmp byte [esi], 0x5b
jne 0x414edd
mov al, byte [esi - 1]
dec esi
cmp al, 9
je 0x414b06
cmp al, 0x20
je 0x414b06
push ecx
mov byte [esi + 1], 0
call fcn.00407050
push edi
push eax
call fcn.00408d50
add esp, 0xc
test eax, eax
je 0x414eea
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 0xe8]
test ecx, ecx
mov dword [esp + 0x10], ecx
je 0x414b55
cmp dword [ecx], eax
jne 0x414b4a
test byte [ecx + 8], 1
je 0x414b7d
mov ecx, dword [ecx + 4]
test ecx, ecx
jne 0x414b40
mov dword [esp + 0x10], ecx
push edx
push eax
call fcn.00415420
mov ecx, eax
add esp, 8
test ecx, ecx
mov dword [esp + 0x10], ecx
je 0x414ef7
cmp edi, 4
jne 0x414b8f
xor ebp, ebp
mov dword [esp + 0x20], ecx
jmp case.0x414a59.5
test ecx, ecx
mov dword [esp + 0x10], ecx
je 0x414b55
mov eax, dword [ecx + 8]
or al, 1
mov dword [ecx + 8], eax
jmp 0x414b6d
mov ebp, ecx
mov dword [esp + 0x20], 0
jmp case.0x414a59.5
mov ecx, dword [esp + 0x24]
cmp ecx, edi
je 0x414bce
mov edx, dword [esp + 0xb14]
mov eax, dword [edx + 0x350]
cmp eax, edi
je 0x414e13
push ecx
push eax
call fcn.004054e0
add esp, 8
mov dword [esp + 0x24], edi
jmp 0x41313b
mov ebx, dword [esp + 0x18]
cmp ebx, edi
je 0x414e20
mov eax, dword [ebx + 0xc0]
cmp eax, edi
je 0x414e4f
cmp dword [eax + 8], edi
je 0x414e4f
mov ebp, dword [esp + 0xb14]
mov ecx, dword [ebx + 0x14]
cmp ecx, dword [ebp + 0x324]
jge 0x414dd2
mov edx, dword [ebx + 0x18]
mov ecx, dword [ebp + 0x328]
cmp edx, ecx
jge 0x414dd2
push edi
push 1
lea ecx, [ebx + 0xc]
push ebx
push ecx
push eax
push ebp
call fcn.00412a70
mov esi, eax
add esp, 0x18
cmp esi, edi
je 0x414e2d
mov edx, dword [ebx + 0xc0]
mov eax, dword [ebp + 0x364]
mov ecx, dword [ebp + 0x344]
push edx
push eax
push ecx
call fcn.00409160
add esp, 0xc
test eax, eax
jne 0x414e3a
mov edx, dword [ebx + 0xe8]
mov eax, dword [ebp + 0x364]
mov ecx, dword [ebp + 0x344]
push edx
push eax
push ecx
call fcn.00409080
add esp, 0xc
test eax, eax
jne 0x414e3a
mov dword [ebx + 0xe8], edi
mov edx, dword [ebx + 0xd8]
mov dword [esi + 0xd8], edx
mov ecx, dword [esi + 4]
sub ecx, 0x10
mov eax, 1
shl eax, cl
test al, 0x1e
jne 0x414d99
mov ecx, dword [ebx + 0x140]
mov dword [esi + 0x140], ecx
mov edx, dword [ebx + 0x144]
mov dword [esi + 0x144], edx
mov eax, dword [ebx + 0x198]
lea ecx, [ebx + 0x158]
mov dword [esi + 0x198], eax
lea edx, [esi + 0x158]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov ecx, dword [ecx + 0xc]
mov dword [edx + 0xc], ecx
mov edx, dword [ebx + 0x21c]
mov dword [esi + 0x21c], edx
mov eax, dword [ebx + 0x22c]
cmp eax, edi
je 0x414d2d
cmp dword [ebx + 0x228], edi
je 0x414d2d
mov ecx, dword [ebx + 0x228]
lea eax, [esi + 0x228]
mov dword [esi + 0x228], ecx
mov edx, dword [ebx + 0x22c]
mov dword [eax + 4], edx
mov ecx, dword [ebx + 0x230]
mov dword [eax + 8], ecx
cmp dword [ebx + 0x238], edi
je 0x414d5d
mov eax, dword [ebx + 0x234]
cmp eax, edi
je 0x414d5d
lea edx, [esi + 0x234]
mov dword [esi + 0x234], eax
mov ecx, dword [ebx + 0x238]
mov dword [edx + 4], ecx
mov eax, dword [ebx + 0x23c]
mov dword [edx + 8], eax
mov eax, dword [ebx + 0x14c]
cmp eax, 0x18
je 0x414d99
mov ecx, dword [esi + 0x188]
cmp dword [ecx], eax
je 0x414d8d
mov edx, dword [esi + 0x188]
mov eax, dword [edx + 4]
mov dword [esi + 0x188], eax
mov ecx, dword [ebx + 0x14c]
mov eax, dword [eax]
cmp eax, ecx
jne 0x414d72
mov ecx, dword [ebx + 0x14c]
mov dword [ebx + 0x150], ecx
mov ecx, dword [esi + 0x128]
push 0x40c
or ecx, 4
push str.D:c2vVyruz_D3DVzEd3do.cpp
mov dword [esi + 0x128], ecx
mov edx, dword [esi + 0x14]
mov eax, dword [ebp + 0x338]
push esi
mov esi, dword [esi + 0x18]
mov edx, dword [eax + edx*4]
lea ecx, [esi + esi*2]
lea eax, [edx + ecx*4 + 8]
push eax
call fcn.004185e0
add esp, 0x10
mov dword [esp + 0x18], edi
jmp 0x41313b
mov dword [esp + 0x14], str.Cannot_allocate_new_path.
jmp 0x413090
mov ecx, dword [0x51a938]
mov dword [esp + 0x1c], ecx
jmp 0x413090
mov edx, dword [0x51a938]
mov dword [esp + 0x1c], edx
jmp 0x413090
mov dword [esp + 0x14], str.Invalid_level_value
jmp 0x413090
mov dword [esp + 0x14], str.Invalid_patrol_path_table.
jmp 0x413090
mov dword [esp + 0x14], str.Too_many__
jmp 0x413090
mov dword [esp + 0x1c], 2
jmp 0x413090
mov dword [esp + 0x1c], 2
mov dword [esp + 0x14], str.Cannot_load_referenced_objects.
jmp 0x413090
mov dword [esp + 0x14], str.Unknown_class_gaf_name
jmp 0x413090
mov dword [esp + 0x14], str.No_such_HAVE_object.
jmp 0x413090
mov dword [esp + 0x14], str.CLASS_NAME_must_be_defined_first.
jmp 0x413090
push edi
lea eax, [esp + 0x910]
push str.Undefined_class_name___s_.
push eax
call fcn.0044cb10
lea ecx, [esp + 0x918]
add esp, 0xc
mov dword [esp + 0x14], ecx
jmp 0x413090
mov dword [esp + 0x14], str.Cannot_add_patrol_point.
jmp 0x413090
mov dword [esp + 0x14], str.Unknown_object_reference
jmp 0x413090
mov dword [esp + 0x14], str.Cannot_add_this_object__yet
jmp 0x413090
mov dword [esp + 0x14], str.Cannot_set_NAME_in_TYPE_form
jmp 0x413090
mov dword [esp + 0x14], str.Unexpected_keyword
jmp 0x413090
mov dword [esp + 0x14], str.Syntax_error
jmp 0x413090
mov dword [esp + 0x14], str.Invalid_keyword.
jmp 0x413090
mov eax, dword [0x51a938]
mov dword [esp + 0x1c], eax
jmp 0x413090
mov dword [esp + 0x14], str.Unexpected_end_of_file.
jmp 0x413090
mov dword [esp + 0x14], str.Expecting_CREATE_OBJECT
jmp 0x413090
mov dword [esp + 0x14], 0
jmp 0x41310e