Function at 0x45dc21
Capabilities:
Check for software breakpoints
Inspect section memory permissions

Disassembly:
push 0x517100
push 0x516bec
call fcn.004cc303
add esp, 0xc
cmp dword [ebp - 8], 0
jne 0x45d866
push 1
call 0x4cc534
push eax
call fcn.004cc836
add esp, 8
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x24], ecx
mov dl, byte [ecx]
inc ecx
inc dword [esi + 0x128]
movzx edi, dl
mov byte [ebp + 0x13], dl
mov dword [ebp - 0x10], ecx
lea eax, [edi*8]
sub eax, edi
lea eax, [eax*8 + 0x560758]
mov dword [ebp + 0xc], eax
mov eax, dword [esi + 4]
mov eax, dword [eax + 4]
mov dword [ebp - 0xc], eax
cmp eax, 3
jne 0x45d993
mov al, dl
sub al, 0x40
cmp al, 0xf
ja 0x45d990
movzx ecx, byte [ecx]
lea eax, [ecx*8]
sub eax, ecx
cmp dword [eax*8 + 0x560760], 0x40000000
jne 0x45d990
mov al, byte [esi + 0x394]
test al, 0x10
jne 0x45d8f0
cmp dword [ebp - 8], 0
jne 0x45d983
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
push edi
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x5174e4
call fcn.0046c630
mov al, byte [esi + 0x394]
add esp, 0x10
or al, 0x10
mov byte [esi + 0x394], al
jmp 0x45d8f0
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 8], 0x40000000
jne 0x45dfce
test byte [esi + 0x394], 0x10
jne 0x45da03
mov ecx, dword [esi + 0x13c]
xor eax, eax
test ecx, ecx
je 0x45da03
nop dword [eax + eax]
cmp byte [esi + eax + 0x12c], dl
je 0x45d9d0
inc eax
cmp eax, ecx
jb 0x45d9c0
jmp 0x45da03
cmp dword [ebp - 8], 0
jne 0x45d9fc
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
push edi
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517524
call fcn.0046c630
mov dl, byte [ebp + 0x13]
add esp, 0x10
or byte [esi + 0x394], 0x10
lea eax, [edi - 0x26]
cmp eax, 0xcd
ja case.0x45da18.39
movzx eax, byte [eax + 0x4621ec]
jmp dword [eax*4 + 0x4621bc]
mov cl, byte [esi + 0x394]
mov byte [ebp - 2], dl
mov al, cl
test cl, 0x10
jne 0x45da65
test byte [ebx + 0x5d], 0x20
je 0x45da65
cmp dword [ebp - 8], 0
jne 0x45da63
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517554
call fcn.0046c630
mov al, byte [esi + 0x394]
add esp, 0xc
or al, 0x10
or al, 4
mov byte [esi + 0x394], al
mov al, byte [ebx + 0x5d]
and al, 0xdf
or al, 0x40
mov byte [ebx + 0x5d], al
jmp 0x45deef
mov cl, byte [esi + 0x394]
mov byte [ebp - 2], dl
mov al, cl
test cl, 0x10
jne 0x45dac2
test byte [ebx + 0x5d], 0x40
je 0x45dac2
cmp dword [ebp - 8], 0
jne 0x45dac0
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517554
call fcn.0046c630
mov al, byte [esi + 0x394]
add esp, 0xc
or al, 0x10
or al, 4
mov byte [esi + 0x394], al
mov al, byte [ebx + 0x5d]
and al, 0xbf
or al, 0x20
mov byte [ebx + 0x5d], al
jmp 0x45deef
mov al, byte [esi + 0x394]
mov byte [ebp - 2], dl
test al, 0x10
jne 0x45db22
test byte [ebx + 0x5d], 2
je 0x45db22
cmp dword [ebp - 8], 0
jne 0x45db1a
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517554
call fcn.0046c630
mov al, byte [esi + 0x394]
add esp, 0xc
or al, 0x10
mov byte [esi + 0x394], al
mov al, byte [ebx + 0x5d]
test al, 2
jne 0x45deef
or al, 2
mov byte [ebx + 0x5d], al
mov al, byte [ebx + 0x60]
movzx ecx, al
and ecx, 0xf
sub ecx, 2
je 0x45db58
sub ecx, 2
jne 0x45df7d
and al, 0xf2
or al, 2
mov byte [esi + 0x308], al
jmp 0x45deef
and al, 0xf4
or al, 4
mov byte [esi + 0x308], al
jmp 0x45deef
mov al, byte [esi + 0x394]
test al, 0x10
jne 0x45dbad
test byte [ebx + 0x5d], 4
je 0x45dbad
cmp dword [ebp - 8], 0
jne 0x45dba5
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517554
call fcn.0046c630
mov al, byte [esi + 0x394]
add esp, 0xc
or al, 0x10
mov byte [esi + 0x394], al
mov al, byte [ebx + 0x5d]
test al, 4
jne 0x45deef
mov cl, byte [ebx + 0x60]
or al, 4
mov byte [ebx + 0x5d], al
movzx eax, cl
shr eax, 4
sub eax, 2
je 0x45dbd9
sub eax, 2
je 0x45dbea
sub eax, 4
jne 0x45df87
and cl, 0xf
or cl, 0x40
mov byte [esi + 0x308], cl
jmp 0x45deef
mov eax, dword [esi + 4]
cmp dword [eax + 4], 3
jne 0x45dc10
push 0x448
push 0x517100
push 0x517580
call fcn.004cc303
mov cl, byte [esi + 0x308]
add esp, 0xc
and cl, 0xf
or cl, 0x20
mov byte [esi + 0x308], cl
jmp 0x45deef
mov al, byte [esi + 0x394]
mov edi, dword [ebp - 8]
mov cl, al
test al, 0x10
jne 0x45dc6b
test byte [ebx + 0x5d], 8
je 0x45dc6b
test edi, edi
jne 0x45dc62
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517598
call fcn.0046c630
mov cl, byte [esi + 0x394]
add esp, 0xc
or cl, 0x10
mov byte [esi + 0x394], cl
mov eax, dword [esi + 4]
cmp dword [eax + 4], 3
je 0x45dc84
or byte [ebx + 0x5d], 8
mov dword [ebx + 0x48], 0
jmp 0x45deef
test cl, 0x10
jne 0x45deef
test edi, edi
jne 0x45dcb9
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x5175cc
call fcn.0046c630
mov cl, byte [esi + 0x394]
add esp, 0xc
or cl, 0x10
mov byte [esi + 0x394], cl
jmp 0x45deef
mov al, byte [esi + 0x394]
mov edi, dword [ebp - 8]
mov cl, al
test al, 0x10
jne 0x45dd11
test byte [ebx + 0x5d], 8
je 0x45dd11
test edi, edi
jne 0x45dd08
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517598
call fcn.0046c630
mov cl, byte [esi + 0x394]
add esp, 0xc
or cl, 0x10
mov byte [esi + 0x394], cl
mov eax, dword [esi + 4]
cmp dword [eax + 4], 3
je 0x45dc84
or byte [ebx + 0x5d], 8
mov dword [ebx + 0x48], 1
jmp 0x45deef
mov al, byte [esi + 0x394]
mov edi, dword [ebp - 8]
mov cl, al
test al, 0x10
jne 0x45dd78
test byte [ebx + 0x5d], 8
je 0x45dd78
test edi, edi
jne 0x45dd6f
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517598
call fcn.0046c630
mov cl, byte [esi + 0x394]
add esp, 0xc
or cl, 0x10
mov byte [esi + 0x394], cl
mov eax, dword [esi + 4]
cmp dword [eax + 4], 3
je 0x45dc84
or byte [ebx + 0x5d], 8
mov dword [ebx + 0x48], 2
jmp 0x45deef
mov al, byte [esi + 0x394]
mov edi, dword [ebp - 8]
mov cl, al
test al, 0x10
jne 0x45dddf
test byte [ebx + 0x5d], 8
je 0x45dddf
test edi, edi
jne 0x45ddd6
or cl, 0x10
mov byte [esi + 0x394], cl
mov eax, dword [esi + 4]
cmp dword [eax + 4], 3
je 0x45dc84
or byte [ebx + 0x5d], 8
mov dword [ebx + 0x48], 3
jmp 0x45deef
mov al, byte [esi + 0x394]
test al, 0x10
jne 0x45de42
test byte [ebx + 0x5d], 8
je 0x45de42
cmp dword [ebp - 8], 0
jne 0x45de3a
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517598
call fcn.0046c630
mov al, byte [esi + 0x394]
add esp, 0xc
or al, 0x10
mov byte [esi + 0x394], al
or byte [ebx + 0x5d], 8
mov dword [ebx + 0x48], 4
jmp 0x45deef
mov al, byte [esi + 0x394]
test al, 0x10
jne 0x45de98
test byte [ebx + 0x5d], 8
je 0x45de98
cmp dword [ebp - 8], 0
jne 0x45de90
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517598
call fcn.0046c630
mov al, byte [esi + 0x394]
add esp, 0xc
or al, 0x10
mov byte [esi + 0x394], al
or byte [ebx + 0x5d], 8
mov dword [ebx + 0x48], 5
jmp 0x45deef
mov al, byte [esi + 0x394]
test al, 0x10
jne 0x45deeb
test byte [ebx + 0x5d], 0x10
je 0x45deeb
cmp dword [ebp - 8], 0
jne 0x45dee3
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517554
call fcn.0046c630
mov al, byte [esi + 0x394]
add esp, 0xc
or al, 0x10
mov byte [esi + 0x394], al
or byte [ebx + 0x5d], 0x10
mov eax, dword [esi + 0x13c]
cmp eax, 0xf
jae 0x45df91
cmp eax, 4
jne 0x45df39
cmp dword [ebp - 8], 0
jne 0x45df32
push eax
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517634
call fcn.0046c630
mov eax, dword [esi + 0x13c]
add esp, 0x10
or byte [esi + 0x394], 0x10
mov cl, byte [esi + 0x394]
mov edx, eax
test cl, 0x10
jne 0x45df68
cmp eax, 4
jb 0x45df68
push 0x4ab
push 0x517100
push 0x517670
call fcn.004cc303
mov edx, dword [esi + 0x13c]
add esp, 0xc
mov cl, byte [ebp + 0x13]
mov byte [edx + esi + 0x12c], cl
inc dword [esi + 0x13c]
jmp 0x45d8f0
push 0x435
jmp 0x45d83e
push 0x44f
jmp 0x45d83e
cmp dword [ebp - 8], 0
jne 0x45d866
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
push 4
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517600
call fcn.0046c630
add esp, 0x10
jmp 0x45d856
push 0x49c
jmp 0x45d83e
cmp eax, 3
jne 0x45e1aa
mov al, dl
sub al, 0x40
cmp al, 0xf
ja 0x45e1aa
mov edx, dword [esi + 0x13c]
cmp edx, 0xf
jae 0x45df91
mov ah, byte [esi + 0x394]
mov ecx, edx
mov edi, dword [ebp - 8]
mov al, ah
test ah, 0x10
jne 0x45e041
cmp edx, 5
jne 0x45e041
test edi, edi
jne 0x45e039
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
push 4
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517634
call fcn.0046c630
mov al, byte [esi + 0x394]
add esp, 0x10
mov ecx, dword [esi + 0x13c]
or al, 0x10
mov byte [esi + 0x394], al
mov edx, ecx
test al, 0x10
jne 0x45e069
cmp ecx, 5
jb 0x45e069
push 0x4c6
push 0x517100
push 0x517718
call fcn.004cc303
mov edx, dword [esi + 0x13c]
add esp, 0xc
mov cl, byte [ebp + 0x13]
mov byte [edx + esi + 0x12c], cl
mov al, cl
inc dword [esi + 0x13c]
mov dl, cl
and dl, 2
shl al, 2
or dl, al
mov byte [ebx + 0x40], cl
shl dl, 2
mov al, cl
and al, 4
and cl, 8
or dl, al
mov al, byte [ebx + 0x41]
shl dl, 2
and al, 0xf
or dl, cl
add dl, dl
or dl, al
mov al, byte [ebx + 0x60]
and al, 0xf0
mov byte [ebx + 0x41], dl
cmp al, 0x40
jae 0x45e0cb
push 0x4ce
push 0x517100
push 0x5177c0
call fcn.004cc303
mov dl, byte [esi + 0x2e9]
add esp, 0xc
mov cl, byte [ebx + 0x5d]
test dl, 0x10
je 0x45e0e5
mov al, byte [ebx + 0x60]
and al, 0xf8
or al, 8
and cl, 0xfd
mov byte [ebx + 0x60], al
mov byte [ebx + 0x5d], cl
jmp 0x45e154
test cl, 2
je 0x45e10c
mov al, byte [ebx + 0x60]
and al, 0xf
cmp al, 2
je 0x45e154
push 0x4d6
push 0x517100
push 0x517808
call fcn.004cc303
add esp, 0xc
jmp 0x45e154
cmp byte [ebx + 0x40], 0x40
jne 0x45e154
mov al, byte [esi + 0x394]
test al, 0x10
jne 0x45e150
test edi, edi
jne 0x45e148
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x51784c
call fcn.0046c630
mov al, byte [esi + 0x394]
add esp, 0xc
or al, 0x10
mov byte [esi + 0x394], al
mov byte [ebx + 0x40], 0
mov eax, dword [ebp - 0x10]
mov edi, dword [ebp - 0x24]
add edi, 2
mov dword [ebp - 0x10], edi
mov dl, byte [eax]
inc dword [esi + 0x128]
movzx ecx, dl
mov byte [ebp + 0x13], dl
lea eax, [ecx*8]
sub eax, ecx
cmp dword [eax*8 + 0x560760], 0x40000000
lea eax, [eax*8 + 0x560758]
mov dword [ebp + 0xc], eax
jne 0x45e1ad
push 0x4e6
push 0x517100
push 0x517880
call fcn.004cc303
mov dl, byte [ebp + 0x13]
add esp, 0xc
jmp 0x45e1ad
mov edi, dword [ebp - 0x10]
lea eax, [edi - 1]
mov byte [esi + 0x140], dl
mov dword [esi + 0x124], eax
mov eax, dword [ebp + 0xc]
cmp dword [eax + 8], 0
jne 0x45e1ff
cmp dword [eax], 0
jne 0x45e1ff
cmp dword [ebp - 8], 0
jne 0x45d866
movzx eax, dl
push eax
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x5178b0
call fcn.0046c630
add esp, 0x10
jmp 0x45d856
cmp dl, 0xf
jne 0x45e896
cmp dword [esi + 0x144], 0
je 0x45e22b
push 0x4f7
push 0x517100
push 0x5178dc
call fcn.004cc303
mov eax, dword [ebp + 0xc]
add esp, 0xc
mov dl, byte [edi]
inc edi
inc dword [esi + 0x128]
mov byte [esi + 0x140], dl
cmp dword [eax], 0x53f7b8
mov byte [ebp + 0x13], dl
mov dword [ebp - 0x10], edi
je 0x45e262
push 0x4fa
push 0x517100
push 0x517918
call fcn.004cc303
mov dl, byte [ebp + 0x13]
add esp, 0xc
movzx ecx, dl
mov dword [ebp - 0xc], ecx
lea edi, [ecx*8]
sub edi, ecx
shl edi, 3
cmp dword [edi + 0x53f7c0], 0
mov dword [ebp + 0x10], edi
lea eax, [edi + 0x53f7b8]
mov dword [ebp + 0xc], eax
jne 0x45e2c2
cmp dword [eax], 0
jne 0x45e2c2
cmp dword [ebp - 8], 0
jne 0x45d866
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
push ecx
adc edx, dword [esi + 0x114]
push 0xf
push edx
push eax
push 0x51795c
call fcn.0046c630
add esp, 0x14
jmp 0x45d856
mov cl, byte [ebx + 0x60]
mov al, cl
and al, 0xf0
cmp al, 0x80
mov eax, dword [ebp - 0xc]
jne 0x45e317
cmp byte [eax + 0x5648e0], 0
je 0x45e317
cmp dword [ebp - 8], 0
jne 0x45d866
mov eax, dword [ebp + 0xc]
add eax, 0xc
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
push 0xf
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517998
call fcn.0046c630
add esp, 0x18
jmp 0x45d856
and cl, 0xf
cmp cl, 2
jne 0x45e366
cmp byte [eax + 0x5646e0], 0
je 0x45e366
cmp dword [ebp - 8], 0
jne 0x45d866
mov eax, dword [ebp + 0xc]
add eax, 0xc
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
push 0xf
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x5179e0
call fcn.0046c630
add esp, 0x18
jmp 0x45d856
mov al, byte [eax + 0x564058]
shl al, 3
xor al, byte [ebx + 0x5e]
and al, 8
xor al, byte [ebx + 0x5e]
mov byte [ebx + 0x5e], al
test al, 8
je 0x45e386
mov eax, dword [ebp - 0x10]
mov al, byte [eax]
mov byte [ebx + 0x3d], al
mov ecx, dword [ebp + 0xc]
mov byte [esi + 0x141], 0xf
mov byte [esi + 0x142], dl
mov dword [esi + 0x144], 2
mov eax, dword [ecx + 8]
test eax, 0xb8000000
je 0x45e3b1
mov edx, ecx
jmp 0x45ea9b
mov cl, byte [ebp - 2]
test cl, cl
je 0x45e6c1
cmp dword [edi + 0x5460c0], 0
jne 0x45e3d2
cmp dword [edi + 0x5460b8], 0
je 0x45e6c1
mov dword [esi + 0x144], 3
mov byte [esi + 0x143], cl
cmp byte [esi + 0x142], dl
je 0x45e401
push 0x531
push 0x517100
push 0x517a38
call fcn.004cc303
add esp, 0xc
mov eax, dword [esi + 0x13c]
xor edi, edi
test eax, eax
je 0x45e41f
nop dword [eax]
cmp byte [esi + edi + 0x12c], 0
jne 0x45e41f
inc edi
cmp edi, eax
jb 0x45e410
cmp edi, eax
jne 0x45e440
push 0x539
push 0x517100
push 0x517a84
call fcn.004cc303
mov eax, dword [esi + 0x13c]
add esp, 0xc
dec eax
lea ecx, [esi + 0x12c]
add ecx, edi
mov dword [esi + 0x13c], eax
mov byte [ecx], 0
mov eax, dword [esi + 0x13c]
sub eax, edi
push eax
lea eax, [esi + 0x12d]
add eax, edi
push eax
push ecx
call fcn.0049c6d0
mov eax, dword [esi + 0x13c]
add esp, 0xc
mov byte [eax + esi + 0x12c], 0
and byte [esi + 0x394], 0xfb
and byte [ebx + 0x5d], 0x9d
cmp byte [ebp - 2], 0x66
jne 0x45e4ae
mov eax, dword [esi + 4]
cmp dword [eax + 4], 3
jne 0x45e4a4
test byte [ebx + 0x41], 0x10
je 0x45e4a4
mov al, byte [ebx + 0x60]
and al, 0xf8
or al, 8
jmp 0x45e4ab
mov al, byte [ebx + 0x60]
and al, 0xf4
or al, 4
mov byte [ebx + 0x60], al
mov eax, dword [esi + 4]
cmp dword [eax + 4], 2
jne 0x45e4e8
cmp dword [ebp - 8], 0
jne 0x45d866
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517ac0
call fcn.0046c630
add esp, 0xc
jmp 0x45d856
test byte [ebx + 0x5e], 8
jne 0x45e505
push 0x550
push 0x517100
push 0x517af0
call fcn.004cc303
add esp, 0xc
movzx edi, byte [ebp - 2]
mov eax, edi
sub eax, 0x66
je 0x45e538
sub eax, 0x8c
je 0x45e52a
sub eax, 1
jne 0x45e546
mov eax, dword [ebp + 0x10]
lea edx, [eax + 0x54d0b8]
mov dword [ebp + 0xc], edx
jmp 0x45e549
mov eax, dword [ebp + 0x10]
lea edx, [eax + 0x5498b8]
mov dword [ebp + 0xc], edx
jmp 0x45e549
mov eax, dword [ebp + 0x10]
lea edx, [eax + 0x5460b8]
mov dword [ebp + 0xc], edx
jmp 0x45e549
mov edx, dword [ebp + 0xc]
cmp dword [edx + 8], 0
mov eax, dword [edx]
jne 0x45e59d
test eax, eax
jne 0x45e5a5
cmp dword [ebp - 8], eax
jne 0x45d866
movzx eax, byte [esi + 0x143]
push eax
movzx eax, byte [esi + 0x142]
push eax
movzx eax, byte [esi + 0x141]
push eax
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517b28
call fcn.0046c630
add esp, 0x18
jmp 0x45d856
test eax, eax
je 0x45e683
mov eax, dword [ebp - 0xc]
mov cl, byte [ebx + 0x3d]
shr cl, 3
and cl, 7
mov ah, byte [eax + 0x5645e0]
mov al, ah
mov byte [ebp + 0xb], cl
shl al, 2
xor al, byte [ebx + 0x61]
and al, 0x7c
mov byte [ebp - 1], ah
xor byte [ebx + 0x61], al
mov al, ah
sub al, 0xd
cmp al, 2
ja 0x45e5d7
cmp dword [edx], 0
jne 0x45e5f4
push 0x563
push 0x517100
push 0x517b80
call fcn.004cc303
mov edx, dword [ebp + 0xc]
add esp, 0xc
mov cl, byte [ebp + 0xb]
sub edi, 0x66
je 0x45e616
sub edi, 0x8c
je 0x45e60e
sub edi, 1
jne 0x45e62a
movzx eax, cl
add eax, 0x10
jmp 0x45e619
movzx eax, cl
add eax, 8
jmp 0x45e619
movzx eax, cl
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [edx]
lea edx, [eax + ecx*8]
mov dword [ebp + 0xc], edx
cmp dword [edx + 8], 0
jne 0x45e683
cmp dword [edx], 0
jne 0x45e683
cmp dword [ebp - 8], 0
jne 0x45d866
movzx eax, byte [ebp + 0xb]
push eax
movzx eax, byte [esi + 0x143]
push eax
movzx eax, byte [esi + 0x142]
push eax
movzx eax, byte [esi + 0x141]
push eax
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517be0
call fcn.0046c630
add esp, 0x1c
jmp 0x45d856
and byte [esi + 0x394], 0xfb
and byte [ebx + 0x5d], 0x9d
mov eax, dword [edx + 8]
and eax, 0x7fffff00
cmp eax, 0x800000
je 0x45e7f4
cmp eax, 0x1000000
je 0x45e7f4
cmp eax, 0x2000000
je 0x45e7f4
push 0x579
jmp 0x45d83e
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx]
test ecx, ecx
je 0x45e849
test eax, eax
je 0x45e6f0
push 0x57e
push 0x517100
push 0x517c40
call fcn.004cc303
mov edi, dword [ebp + 0xc]
add esp, 0xc
mov ecx, dword [edi]
jmp 0x45e6f3
mov edi, dword [ebp + 0xc]
mov al, byte [ebx + 0x3d]
shr al, 3
and al, 7
mov byte [ebp + 0xb], al
test ecx, ecx
jne 0x45e71e
push 0x581
push 0x517100
push 0x517c74
call fcn.004cc303
mov ecx, dword [edi]
add esp, 0xc
mov al, byte [ebp + 0xb]
movzx edx, al
lea eax, [edx*8]
sub eax, edx
lea ecx, [ecx + eax*8]
mov eax, dword [ecx + 8]
mov dword [ebp + 0xc], ecx
test eax, eax
jne 0x45e779
cmp dword [ecx], eax
jne 0x45e779
inc dword [esi + 0x128]
cmp dword [ebp - 8], 0
jne 0x45d866
mov eax, dword [ebp - 0xc]
push edx
push eax
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
push 0xf
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517c98
call fcn.0046c630
add esp, 0x18
jmp 0x45d856
test eax, 0xb8000000
je 0x45e797
push 0x58a
push 0x517100
push 0x517ce0
call fcn.004cc303
add esp, 0xc
mov edi, dword [ebp - 0xc]
mov cl, byte [edi + 0x5645e0]
mov al, cl
mov byte [ebp - 1], cl
shl al, 2
xor al, byte [ebx + 0x61]
and al, 0x7c
xor byte [ebx + 0x61], al
test cl, cl
je 0x45e7b9
cmp cl, 0x13
jbe 0x45e7d0
push 0x58d
push 0x517100
push 0x517d24
call fcn.004cc303
add esp, 0xc
mov edx, dword [ebp + 0xc]
lea eax, [edx + 0xc]
test eax, eax
jne 0x45e7f4
push 0x58e
push 0x517100
push 0x517d58
call fcn.004cc303
add esp, 0xc
mov edx, dword [ebp + 0xc]
mov eax, dword [esi + 4]
mov eax, dword [eax + 4]
cmp eax, 2
jne 0x45efac
cmp dword [edx + 4], eax
jle 0x45efb1
cmp dword [ebp - 8], 0
jne 0x45d866
movzx eax, byte [esi + 0x140]
push eax
lea eax, [edx + 0xc]
push eax
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x5181b8
call fcn.0046c630
add esp, 0x14
jmp 0x45d856
lea eax, [edx + 0xc]
test eax, eax
jne 0x45e86a
push 0x593
push 0x517100
push 0x517d58
call fcn.004cc303
mov edx, dword [ebp + 0xc]
add esp, 0xc
mov ecx, dword [ebp - 0xc]
mov al, byte [ecx + 0x564058]
shl al, 3
xor al, byte [ebx + 0x5e]
and al, 8
xor al, byte [ebx + 0x5e]
mov byte [ebx + 0x5e], al
test al, 8
je 0x45e7f4
mov eax, dword [ebp - 0x10]
mov al, byte [eax]
mov byte [ebx + 0x3d], al
jmp 0x45e7f4
mov cl, byte [ebx + 0x60]
mov al, cl
movzx edi, dl
and al, 0xf0
cmp al, 0x80
jne 0x45e8e6
cmp byte [edi + 0x5647e0], 0
je 0x45e8e6
cmp dword [ebp - 8], 0
jne 0x45d866
mov eax, dword [ebp + 0xc]
add eax, 0xc
push eax
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
push edi
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517d80
call fcn.0046c630
add esp, 0x14
jmp 0x45d856
and cl, 0xf
cmp cl, 2
jne 0x45e930
cmp byte [edi + 0x56cc60], 0
je 0x45e930
cmp dword [ebp - 8], 0
jne 0x45d866
mov eax, dword [ebp + 0xc]
add eax, 0xc
push eax
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
push edi
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517dc0
call fcn.0046c630
add esp, 0x14
jmp 0x45d856
mov byte [esi + 0x141], dl
mov dword [esi + 0x144], 1
mov cl, byte [edi + 0x563f58]
shl cl, 3
xor cl, byte [ebx + 0x5e]
and cl, 8
xor cl, byte [ebx + 0x5e]
mov byte [ebx + 0x5e], cl
and cl, 8
je 0x45e962
mov eax, dword [ebp - 0x10]
mov al, byte [eax]
mov byte [ebx + 0x3d], al
mov edx, dword [ebp + 0xc]
cmp dword [edx], 0
je 0x45ea87
test cl, cl
jne 0x45e98c
push 0x5be
push 0x517100
push 0x517af0
call fcn.004cc303
mov edx, dword [ebp + 0xc]
add esp, 0xc
mov eax, dword [ebp - 0x10]
mov al, byte [eax]
shr al, 3
and al, 7
mov byte [ebp + 0xb], al
mov eax, dword [edx + 8]
test eax, 0xb8000000
jne 0x45ea98
mov edx, dword [edx]
test edx, edx
jne 0x45e9c9
push 0x5c8
push 0x517100
push 0x517c74
call fcn.004cc303
mov ecx, dword [ebp + 0xc]
add esp, 0xc
mov edx, dword [ecx]
movzx ecx, byte [ebp + 0xb]
lea eax, [ecx*8]
sub eax, ecx
cmp dword [edx + eax*8 + 8], 0
lea edx, [edx + eax*8]
mov dword [ebp + 0xc], edx
jne 0x45ea21
cmp dword [edx], 0
jne 0x45ea21
inc dword [esi + 0x128]
cmp dword [ebp - 8], 0
jne 0x45d866
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
push ecx
adc edx, dword [esi + 0x114]
push edi
push edx
push eax
push 0x517e10
call fcn.0046c630
add esp, 0x14
jmp 0x45d856
mov cl, byte [edi + 0x5644e0]
mov al, cl
mov byte [ebp - 1], cl
shl al, 2
xor al, byte [ebx + 0x61]
and al, 0x7c
xor byte [ebx + 0x61], al
test cl, cl
je 0x45ea40
cmp cl, 0x11
jbe 0x45ea5a
push 0x5d4
push 0x517100
push 0x517e54
call fcn.004cc303
mov edx, dword [ebp + 0xc]
add esp, 0xc
lea eax, [edx + 0xc]
mov dword [ebp - 0xc], edi
test eax, eax
jne 0x45e7f4
push 0x5d5
push 0x517100
push 0x517d58
call fcn.004cc303
add esp, 0xc
mov dword [ebp - 0xc], edi
jmp 0x45e7f1
mov eax, dword [edx + 8]
mov dword [ebp - 0xc], edi
test eax, 0xb8000000
je 0x45e7f4
mov dword [ebp - 0xc], edi
test eax, 0x10000000
je 0x45ec6b
cmp dword [edx], 0
jne 0x45eac2
push 0x5e9
push 0x517100
push 0x517c74
call fcn.004cc303
add esp, 0xc
cmp dword [esi + 0x144], 2
je 0x45eae2
push 0x5ea
push 0x517100
push 0x517e88
call fcn.004cc303
add esp, 0xc
test byte [ebx + 0x5e], 8
jne 0x45eaff
push 0x5eb
push 0x517100
push 0x517af0
call fcn.004cc303
add esp, 0xc
mov edi, dword [ebp - 0x10]
mov eax, dword [ebp + 0xc]
movzx edx, byte [edi]
mov eax, dword [eax]
lea ecx, [edx*8]
sub ecx, edx
lea ecx, [eax + ecx*8]
mov eax, dword [ecx + 8]
mov dword [ebp + 0xc], ecx
mov ecx, dword [ecx]
test eax, eax
jne 0x45eb67
test ecx, ecx
jne 0x45eb6f
cmp dword [ebp - 8], ecx
jne 0x45d866
movzx eax, byte [esi + 0x142]
push edx
push eax
movzx eax, byte [esi + 0x141]
push eax
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517ec8
call fcn.0046c630
add esp, 0x18
jmp 0x45d856
test ecx, ecx
je 0x45ec4f
test eax, eax
je 0x45eb91
push 0x5f4
push 0x517100
push 0x517c40
call fcn.004cc303
mov edi, dword [ebp + 0xc]
add esp, 0xc
mov ecx, dword [edi]
jmp 0x45eb94
mov edi, dword [ebp + 0xc]
mov al, byte [ebx + 0x3d]
shr al, 3
and al, 7
mov byte [ebp + 0xb], al
test ecx, ecx
jne 0x45ebbf
push 0x5f7
push 0x517100
push 0x517c74
call fcn.004cc303
mov ecx, dword [edi]
add esp, 0xc
mov al, byte [ebp + 0xb]
movzx edx, al
lea eax, [edx*8]
sub eax, edx
lea ecx, [ecx + eax*8]
mov eax, dword [ecx + 8]
mov dword [ebp + 0xc], ecx
test eax, eax
jne 0x45ebe0
cmp dword [ecx], eax
je 0x45e73b
test eax, 0xb8000000
je 0x45ebfe
push 0x600
push 0x517100
push 0x517ce0
call fcn.004cc303
add esp, 0xc
mov eax, dword [ebp - 0xc]
mov cl, byte [eax + 0x5645e0]
mov al, cl
mov byte [ebp - 1], cl
shl al, 2
xor al, byte [ebx + 0x61]
and al, 0x7c
xor byte [ebx + 0x61], al
test cl, cl
je 0x45ec20
cmp cl, 0x13
jbe 0x45ec37
push 0x603
push 0x517100
push 0x517d24
call fcn.004cc303
add esp, 0xc
mov edx, dword [ebp + 0xc]
lea eax, [edx + 0xc]
test eax, eax
jne 0x45e7f4
push 0x604
jmp 0x45e7df
mov edx, dword [ebp + 0xc]
cmp dword [edx + 0x1c], 0
jne 0x45e7f4
inc dword [esi + 0x128]
inc edi
mov dword [ebp - 0x10], edi
jmp 0x45e7f4
test eax, eax
jns 0x45ed36
mov edi, dword [edx]
test edi, edi
jne 0x45ec95
push 0x60e
push 0x517100
push 0x517c74
call fcn.004cc303
mov eax, dword [ebp + 0xc]
add esp, 0xc
mov edi, dword [eax]
mov cl, byte [ebx + 0x3d]
mov al, cl
cmp cl, 0xc0
jae 0x45ecb5
shr al, 3
and al, 7
movzx edx, al
mov byte [ebp + 0xb], al
lea eax, [edx*8]
sub eax, edx
jmp 0x45eccc
and al, 0x3f
movzx edx, al
mov byte [ebp + 0xb], al
lea ecx, [edx + 8]
lea eax, [ecx*8]
sub eax, ecx
mov cl, byte [ebx + 0x3d]
cmp dword [edi + eax*8 + 8], 0
lea eax, [edi + eax*8]
mov dword [ebp + 0xc], eax
jne 0x45ed1b
cmp dword [eax], 0
jne 0x45ed1b
cmp dword [ebp - 8], 0
jne 0x45d866
lea eax, [edx + 8]
push eax
movzx eax, cl
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517f08
call fcn.0046c630
add esp, 0x18
jmp 0x45d856
mov edx, dword [ebp + 0xc]
cmp dword [edx + 0x1c], 0
jne 0x45e7f4
inc dword [esi + 0x128]
inc dword [ebp - 0x10]
jmp 0x45e7f4
test eax, 0x20000000
je 0x45ef36
test byte [ebx + 0x5d], 2
je 0x45eda0
mov al, byte [esi + 0x394]
test al, 0x10
jne 0x45ed92
cmp dword [edx], 0x559678
jne 0x45ed92
cmp dword [ebp - 8], 0
jne 0x45ed8a
mov eax, dword [esi + 0x120]
cdq
add eax, dword [esi + 0x110]
adc edx, dword [esi + 0x114]
push edx
push eax
push 0x517f60
call fcn.0046c630
mov al, byte [esi + 0x394]
add esp, 0xc
mov edx, dword [ebp + 0xc]
or al, 0x10
mov byte [esi + 0x394], al
mov al, byte [ebx + 0x60]
and byte [ebx + 0x5d], 0xfd
and al, 0xf4
or al, 4
mov byte [ebx + 0x60], al
cmp dword [edx + 0x1c], 0
je 0x45edc0
cmp dword [edx + 0x20], 0
je 0x45edb9
xor eax, eax
cmp dword [edx + 0x24], eax
setne al
add eax, 2
jmp 0x45edc2
mov eax, 1
jmp 0x45edc2
xor eax, eax
cmp dword [esi + 0x144], 2
mov dword [esi + 0x2a0], eax
jne 0x45eddc
test byte [ebx + 0x5e], 8
je 0x45eddc
cmp eax, 2
je 0x45edf6
push 0x632
push 0x517100
push 0x517fa8
call fcn.004cc303
mov edx, dword [ebp + 0xc]
add esp, 0xc
movups xmm0, xmmword [edx]
mov edi, dword [ebp - 0x10]
movups xmmword [ebx + 4], xmm0
movups xmm0, xmmword [edx + 0x10]
movups xmmword [ebx + 0x14], xmm0
movups xmm0, xmmword [edx + 0x20]
movups xmmword [ebx + 0x24], xmm0
movq xmm0, qword [edx + 0x30]
movq qword [ebx + 0x34], xmm0
mov eax, dword [edx + 0x1c]
and eax, 0xff80
mov dword [esi + 0x150], eax
mov eax, dword [edx + 0x20]
and eax, 0xff80
mov dword [esi + 0x1c0], eax
mov eax, dword [edx + 0x24]
and eax, 0xff80
mov dword [esi + 0x230], eax
mov eax, dword [esi + 0x128]
add eax, dword [esi + 0x120]
cmp edi, eax
je 0x45ee6b
push 0x637
push 0x517100
push 0x518068
call fcn.004cc303
add esp, 0xc
push dword [ebp - 8]
push edi
push esi
call fcn.00463a60
add esp, 0xc
test eax, eax
invalid
test al, dl
invalid