Function at 0x44f480
Capabilities:
Check for software breakpoints

Disassembly:
sub esp, 0x194
mov eax, dword [0x597f98]
xor eax, esp
mov dword [esp + 0x190], eax
push ebx
mov ebx, dword [esp + 0x19c]
push ebp
mov ebp, dword [esp + 0x1a4]
mov edx, dword [ebp + 0xc]
cmp edx, 0x183
push esi
mov esi, dword [esp + 0x1b0]
push edi
mov edi, dword [esp + 0x1b8]
mov dword [esp + 0x10], edx
ja case.0x44f4ce.1
movzx eax, byte [edx + 0x452518]
jmp dword [eax*4 + 0x4523c0]
lea ebx, [edx - 2]
test bl, 8
mov dword [esp + 0x28], ebx
je 0x44f505
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x44f4f9
call fcn.0042bf80
mov ecx, dword [edi + 8]
mov esi, dword [edi]
jmp 0x44f517
call fcn.0042bf80
mov ecx, dword [edi + 8]
mov esi, dword [edi]
jmp 0x44f517
mov al, byte [esi + 4]
cmp al, 0xff
lea ecx, [esi + 5]
jne 0x44f514
mov esi, dword [esi - 4]
jmp 0x44f517
movzx esi, al
test bl, 1
je 0x44fd79
test bl, 2
je 0x44f7ff
test bl, 4
je 0x44f544
mov edx, dword [ebp + 0x14]
push edx
add ebp, 0x18
push ebp
push esi
push ecx
call fcn.00440c30
mov esi, eax
jmp 0x45034f
mov eax, dword [ebp + 0x14]
add ebp, 0x18
test eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], ebp
je 0x450074
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x10], eax
jmp 0x44f580
cmp dword [esp + 0x10], 0
je 0x4500a1
mov cl, byte [ebp]
mov bl, byte [esi]
mov edx, dword [0x599dbc]
movzx eax, cl
cmp byte [eax + edx], bl
jne 0x44f5b1
sub dword [esp + 0x10], 1
add ebp, 1
add esi, 1
sub edi, 1
jmp 0x44f727
test cl, cl
jns 0x44f788
cmp dword [esp + 0x10], 2
jl 0x44f5ec
mov dl, cl
and dl, 0xe0
cmp dl, 0xc0
jne 0x44f5ec
movzx ecx, byte [ebp + 1]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
push ecx
call fcn.00422930
add ebp, 2
sub dword [esp + 0x10], 2
jmp 0x44f678
cmp dword [esp + 0x10], 3
jl 0x44f628
mov dl, cl
and dl, 0xf0
cmp dl, 0xe0
jne 0x44f628
movzx ecx, byte [ebp + 1]
movzx edx, byte [ebp + 2]
and ecx, 0x3f
and eax, 0xf
shl eax, 6
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
push ecx
call fcn.00422930
add ebp, 3
sub dword [esp + 0x10], 3
jmp 0x44f678
cmp dword [esp + 0x10], 4
jl 0x44f66e
and cl, 0xf8
cmp cl, 0xf0
jne 0x44f66e
movzx ecx, byte [ebp + 1]
movzx edx, byte [ebp + 2]
and ecx, 0x3f
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [ebp + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
push ecx
call fcn.00422930
add ebp, 4
sub dword [esp + 0x10], 4
jmp 0x44f678
xor eax, eax
add ebp, 1
sub dword [esp + 0x10], 1
test bl, bl
jns 0x44f71a
cmp edi, 2
jl 0x44f6a6
mov cl, bl
and cl, 0xe0
cmp cl, 0xc0
jne 0x44f6a6
movzx ecx, byte [esi + 1]
and ebx, 0x1f
and ecx, 0x3f
shl ebx, 6
or ecx, ebx
add esi, 2
sub edi, 2
jmp 0x44f723
cmp edi, 3
jl 0x44f6d8
mov dl, bl
and dl, 0xf0
cmp dl, 0xe0
jne 0x44f6d8
movzx ecx, byte [esi + 1]
movzx edx, byte [esi + 2]
and ecx, 0x3f
and ebx, 0xf
shl ebx, 6
or ecx, ebx
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 3
sub edi, 3
jmp 0x44f723
cmp edi, 4
jl 0x44f716
mov cl, bl
and cl, 0xf8
cmp cl, 0xf0
jne 0x44f716
movzx ecx, byte [esi + 1]
movzx edx, byte [esi + 2]
and ecx, 0x3f
and ebx, 7
shl ebx, 6
or ecx, ebx
shl ecx, 6
and edx, 0x3f
or ecx, edx
movzx edx, byte [esi + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
add esi, 4
sub edi, 4
jmp 0x44f723
xor ecx, ecx
jmp 0x44f71d
movzx ecx, bl
add esi, 1
sub edi, 1
cmp eax, ecx
jne 0x44f788
test edi, edi
jne 0x44f580
mov al, byte [esi - 1]
cmp al, 0x61
jb 0x44f73a
cmp al, 0x7a
jbe 0x44f756
cmp al, 0x41
jb 0x44f742
cmp al, 0x5a
jbe 0x44f756
cmp al, 0x30
jb 0x44f74a
cmp al, 0x39
jbe 0x44f756
cmp al, 0x5f
je 0x44f756
test al, al
jns 0x450074
cmp dword [esp + 0x10], 0
je 0x450074
mov al, byte [ebp]
cmp al, 0x61
jb 0x44f76c
cmp al, 0x7a
jbe 0x44f788
cmp al, 0x41
jb 0x44f774
cmp al, 0x5a
jbe 0x44f788
cmp al, 0x30
jb 0x44f77c
cmp al, 0x39
jbe 0x44f788
cmp al, 0x5f
je 0x44f788
test al, al
jns 0x450074
mov eax, dword [esp + 0x24]
mov cl, byte [eax]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
add edx, 1
sub esi, 1
cmp cl, 0x61
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], esi
jb 0x44f7ae
cmp cl, 0x7a
jbe 0x44f7cf
cmp cl, 0x41
jb 0x44f7b8
cmp cl, 0x5a
jbe 0x44f7cf
cmp cl, 0x30
jb 0x44f7c2
cmp cl, 0x39
jbe 0x44f7cf
cmp cl, 0x5f
je 0x44f7cf
test cl, cl
jns 0x44f562
test esi, esi
je 0x44f562
mov al, byte [edx - 1]
cmp al, 0x61
jb 0x44f7e2
cmp al, 0x7a
jbe 0x44f796
cmp al, 0x41
jb 0x44f7ea
cmp al, 0x5a
jbe 0x44f796
cmp al, 0x30
jb 0x44f7f2
cmp al, 0x39
jbe 0x44f796
cmp al, 0x5f
je 0x44f796
test al, al
js 0x44f796
jmp 0x44f562
mov eax, dword [ebp + 0x14]
add ebp, 0x18
test bl, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], ebp
je 0x44fac9
test eax, eax
je 0x450074
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], esi
jmp 0x44f830
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x10], ecx
cmp dword [esp + 0x10], 0
je 0x4500a1
mov cl, byte [ebp]
mov bl, byte [esi]
mov edx, dword [0x599db8]
movzx eax, cl
cmp byte [eax + edx], bl
jne 0x44f875
sub dword [esp + 0x10], 1
add ebp, 1
add esi, 1
sub edi, 1
jmp 0x44f9ee
test cl, cl
jns 0x44fa4f
cmp dword [esp + 0x10], 2
jl 0x44f8b0
mov dl, cl
and dl, 0xe0
cmp dl, 0xc0
jne 0x44f8b0
movzx ecx, byte [ebp + 1]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
push ecx
call fcn.00409c40
add ebp, 2
sub dword [esp + 0x10], 2
jmp 0x44f93c
cmp dword [esp + 0x10], 3
jl 0x44f8ec
mov dl, cl
and dl, 0xf0
cmp dl, 0xe0
jne 0x44f8ec
movzx ecx, byte [ebp + 1]
movzx edx, byte [ebp + 2]
and ecx, 0x3f
and eax, 0xf
shl eax, 6
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
push ecx
call fcn.00409c40
add ebp, 3
sub dword [esp + 0x10], 3
jmp 0x44f93c
cmp dword [esp + 0x10], 4
jl 0x44f932
and cl, 0xf8
cmp cl, 0xf0
jne 0x44f932
movzx ecx, byte [ebp + 1]
movzx edx, byte [ebp + 2]
and ecx, 0x3f
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [ebp + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
push ecx
call fcn.00409c40
add ebp, 4
sub dword [esp + 0x10], 4
jmp 0x44f93c
xor eax, eax
add ebp, 1
sub dword [esp + 0x10], 1
test bl, bl
jns 0x44f9e1
cmp edi, 2
jl 0x44f96d
mov cl, bl
and cl, 0xe0
cmp cl, 0xc0
jne 0x44f96d
movzx edx, byte [esi + 1]
and ebx, 0x1f
shl ebx, 6
and edx, 0x3f
or ebx, edx
add esi, 2
sub edi, 2
jmp 0x44f9ea
cmp edi, 3
jl 0x44f99f
mov cl, bl
and cl, 0xf0
cmp cl, 0xe0
jne 0x44f99f
movzx edx, byte [esi + 1]
movzx ecx, byte [esi + 2]
and ebx, 0xf
shl ebx, 6
and edx, 0x3f
or ebx, edx
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
add esi, 3
sub edi, 3
jmp 0x44f9ea
cmp edi, 4
jl 0x44f9dd
mov dl, bl
and dl, 0xf8
cmp dl, 0xf0
jne 0x44f9dd
movzx ecx, byte [esi + 1]
movzx edx, byte [esi + 2]
and ebx, 7
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
movzx ecx, byte [esi + 3]
shl ebx, 6
and edx, 0x3f
or ebx, edx
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
add esi, 4
sub edi, 4
jmp 0x44f9ea
xor ebx, ebx
jmp 0x44f9e4
movzx ebx, bl
add esi, 1
sub edi, 1
cmp eax, ebx
jne 0x44fa4f
test edi, edi
jne 0x44f844
mov al, byte [esi - 1]
cmp al, 0x61
jb 0x44fa01
cmp al, 0x7a
jbe 0x44fa1d
cmp al, 0x41
jb 0x44fa09
cmp al, 0x5a
jbe 0x44fa1d
cmp al, 0x30
jb 0x44fa11
cmp al, 0x39
jbe 0x44fa1d
cmp al, 0x5f
je 0x44fa1d
test al, al
jns 0x450074
cmp dword [esp + 0x10], 0
je 0x450074
mov al, byte [ebp]
cmp al, 0x61
jb 0x44fa33
cmp al, 0x7a
jbe 0x44fa4f
cmp al, 0x41
jb 0x44fa3b
cmp al, 0x5a
jbe 0x44fa4f
cmp al, 0x30
jb 0x44fa43
cmp al, 0x39
jbe 0x44fa4f
cmp al, 0x5f
je 0x44fa4f
test al, al
jns 0x450074
mov edx, dword [esp + 0x24]
mov cl, byte [edx]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
lea ecx, [ecx]
add edx, 1
sub esi, 1
cmp cl, 0x61
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], esi
jb 0x44fa78
cmp cl, 0x7a
jbe 0x44fa99
cmp cl, 0x41
jb 0x44fa82
cmp cl, 0x5a
jbe 0x44fa99
cmp cl, 0x30
jb 0x44fa8c
cmp cl, 0x39
jbe 0x44fa99
cmp cl, 0x5f
je 0x44fa99
test cl, cl
jns 0x44f830
test esi, esi
je 0x44f830
mov al, byte [edx - 1]
cmp al, 0x61
jb 0x44faac
cmp al, 0x7a
jbe 0x44fa60
cmp al, 0x41
jb 0x44fab4
cmp al, 0x5a
jbe 0x44fa60
cmp al, 0x30
jb 0x44fabc
cmp al, 0x39
jbe 0x44fa60
cmp al, 0x5f
je 0x44fa60
test al, al
js 0x44fa60
jmp 0x44f830
test eax, eax
je 0x450074
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], esi
lea esp, [esp]
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0
je 0x4500a1
mov cl, byte [ebp]
mov bl, byte [esi]
mov edx, dword [0x599db8]
movzx eax, cl
cmp byte [eax + edx], bl
jne 0x44fb25
sub dword [esp + 0x10], 1
add ebp, 1
add esi, 1
sub edi, 1
jmp 0x44fc9e
test cl, cl
jns 0x44fcff
cmp dword [esp + 0x10], 2
jl 0x44fb60
mov dl, cl
and dl, 0xe0
cmp dl, 0xc0
jne 0x44fb60
movzx ecx, byte [ebp + 1]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
push ecx
call fcn.00409c90
add ebp, 2
sub dword [esp + 0x10], 2
jmp 0x44fbec
cmp dword [esp + 0x10], 3
jl 0x44fb9c
mov dl, cl
and dl, 0xf0
cmp dl, 0xe0
jne 0x44fb9c
movzx ecx, byte [ebp + 1]
movzx edx, byte [ebp + 2]
and ecx, 0x3f
and eax, 0xf
shl eax, 6
or ecx, eax
shl ecx, 6
and edx, 0x3f
or ecx, edx
push ecx
call fcn.00409c90
add ebp, 3
sub dword [esp + 0x10], 3
jmp 0x44fbec
cmp dword [esp + 0x10], 4
jl 0x44fbe2
and cl, 0xf8
cmp cl, 0xf0
jne 0x44fbe2
movzx ecx, byte [ebp + 1]
movzx edx, byte [ebp + 2]
and ecx, 0x3f
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [ebp + 3]
shl ecx, 6
and edx, 0x3f
or ecx, edx
shl ecx, 6
and eax, 0x3f
or ecx, eax
push ecx
call fcn.00409c90
add ebp, 4
sub dword [esp + 0x10], 4
jmp 0x44fbec
xor eax, eax
add ebp, 1
sub dword [esp + 0x10], 1
test bl, bl
jns 0x44fc91
cmp edi, 2
jl 0x44fc1d
mov cl, bl
and cl, 0xe0
cmp cl, 0xc0
jne 0x44fc1d
movzx edx, byte [esi + 1]
and ebx, 0x1f
shl ebx, 6
and edx, 0x3f
or ebx, edx
add esi, 2
sub edi, 2
jmp 0x44fc9a
cmp edi, 3
jl 0x44fc4f
mov cl, bl
and cl, 0xf0
cmp cl, 0xe0
jne 0x44fc4f
movzx edx, byte [esi + 1]
movzx ecx, byte [esi + 2]
and ebx, 0xf
shl ebx, 6
and edx, 0x3f
or ebx, edx
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
add esi, 3
sub edi, 3
jmp 0x44fc9a
cmp edi, 4
jl 0x44fc8d
mov dl, bl
and dl, 0xf8
cmp dl, 0xf0
jne 0x44fc8d
movzx ecx, byte [esi + 1]
movzx edx, byte [esi + 2]
and ebx, 7
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
movzx ecx, byte [esi + 3]
shl ebx, 6
and edx, 0x3f
or ebx, edx
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
add esi, 4
sub edi, 4
jmp 0x44fc9a
xor ebx, ebx
jmp 0x44fc94
movzx ebx, bl
add esi, 1
sub edi, 1
cmp eax, ebx
jne 0x44fcff
test edi, edi
jne 0x44faf4
mov al, byte [esi - 1]
cmp al, 0x61
jb 0x44fcb1
cmp al, 0x7a
jbe 0x44fccd
cmp al, 0x41
jb 0x44fcb9
cmp al, 0x5a
jbe 0x44fccd
cmp al, 0x30
jb 0x44fcc1
cmp al, 0x39
jbe 0x44fccd
cmp al, 0x5f
je 0x44fccd
test al, al
jns 0x450074
cmp dword [esp + 0x10], 0
je 0x450074
mov al, byte [ebp]
cmp al, 0x61
jb 0x44fce3
cmp al, 0x7a
jbe 0x44fcff
cmp al, 0x41
jb 0x44fceb
cmp al, 0x5a
jbe 0x44fcff
cmp al, 0x30
jb 0x44fcf3
cmp al, 0x39
jbe 0x44fcff
cmp al, 0x5f
je 0x44fcff
test al, al
jns 0x450074
mov edx, dword [esp + 0x24]
mov cl, byte [edx]
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
lea ecx, [ecx]
add edx, 1
sub esi, 1
cmp cl, 0x61
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], esi
jb 0x44fd28
cmp cl, 0x7a
jbe 0x44fd49
cmp cl, 0x41
jb 0x44fd32
cmp cl, 0x5a
jbe 0x44fd49
cmp cl, 0x30
jb 0x44fd3c
cmp cl, 0x39
jbe 0x44fd49
cmp cl, 0x5f
je 0x44fd49
test cl, cl
jns 0x44fae0
test esi, esi
je 0x44fae0
mov al, byte [edx - 1]
cmp al, 0x61
jb 0x44fd5c
cmp al, 0x7a
jbe 0x44fd10
cmp al, 0x41
jb 0x44fd64
cmp al, 0x5a
jbe 0x44fd10
cmp al, 0x30
jb 0x44fd6c
cmp al, 0x39
jbe 0x44fd10
cmp al, 0x5f
je 0x44fd10
test al, al
js 0x44fd10
jmp 0x44fae0
test bl, 2
je 0x45007e
test bl, 4
je 0x44fd9d
mov eax, dword [ebp + 0x14]
push eax
add ebp, 0x18
push ebp
push esi
push ecx
call fcn.005227b0
mov esi, eax
jmp 0x45034f
mov edi, dword [ebp + 0x14]
cmp edi, esi
lea eax, [ebp + 0x18]
mov dword [esp + 0x3c], eax
jle 0x44fdb2
xor esi, esi
jmp 0x45034f
lea ebx, [esi + ecx]
sub ecx, eax
mov edx, ecx
sub edx, edi
add edx, esi
lea ebp, [eax + edi]
mov dword [esp + 0x38], edx
mov edx, ebp
sub edx, eax
sub ebx, eax
mov dword [esp + 0x24], ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], ebx
lea ebx, [ebx]
mov edi, ecx
lea ecx, [eax + 3]
mov esi, eax
lea ebp, [eax + 2]
add eax, 4
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], ebx
lea ecx, [ecx]
cmp esi, dword [esp + 0x24]
jae 0x450074
mov al, byte [esi + edi]
mov bl, byte [esi]
mov edx, dword [0x599dbc]
movzx ecx, al
cmp byte [ecx + edx], bl
jne 0x44fe38
mov eax, 1
add dword [esp + 0x1c], eax
add dword [esp + 0x14], eax
sub dword [esp + 0x10], eax
add esi, eax
add ebp, eax
sub dword [esp + 0x18], eax
jmp 0x44fe00
test al, al
jns 0x45004c
mov ecx, dword [esp + 0x10]
sub ecx, edi
cmp ecx, 2
jl 0x44fe77
mov dl, al
and dl, 0xe0
cmp dl, 0xc0
jne 0x44fe77
movzx ecx, byte [esi + edi]
movzx eax, byte [esi + edi + 1]
and ecx, 0x1f
and eax, 0x3f
shl ecx, 6
or eax, ecx
push eax
call fcn.00422930
add edi, 1
jmp 0x44fef8
cmp ecx, 3
jl 0x44feb2
mov dl, al
and dl, 0xf0
cmp dl, 0xe0
jne 0x44feb2
movzx ecx, byte [esi + edi]
movzx eax, byte [esi + edi + 1]
movzx edx, byte [esi + edi + 2]
and eax, 0x3f
and ecx, 0xf
shl ecx, 6
or eax, ecx
shl eax, 6
and edx, 0x3f
or eax, edx
push eax
call fcn.00422930
add edi, 2
jmp 0x44fef8
cmp ecx, 4
jl 0x44fef6
and al, 0xf8
cmp al, 0xf0
jne 0x44fef6
movzx ecx, byte [esi + edi]
movzx eax, byte [esi + edi + 1]
movzx edx, byte [esi + edi + 2]
and eax, 0x3f
and ecx, 7
shl ecx, 6
or eax, ecx
movzx ecx, byte [esi + edi + 3]
shl eax, 6
and edx, 0x3f
or eax, edx
shl eax, 6
and ecx, 0x3f
or eax, ecx
push eax
call fcn.00422930
add edi, 3
jmp 0x44fef8
xor eax, eax
test bl, bl
jns 0x450015
mov edx, dword [esp + 0x24]
cmp ebp, edx
ja 0x44ff46
mov cl, bl
and cl, 0xe0
cmp cl, 0xc0
jne 0x44ff46
movzx edx, byte [esi + 1]
and ebx, 0x1f
mov ecx, 2
add dword [esp + 0x1c], ecx
add dword [esp + 0x14], ecx
sub dword [esp + 0x10], ecx
sub dword [esp + 0x18], ecx
and edx, 0x3f
shl ebx, 6
or ebx, edx
mov edx, 1
add esi, ecx
add ebp, ecx
sub edi, edx
jmp 0x450031
mov ecx, dword [esp + 0x14]
cmp ecx, edx
ja 0x44ff9d
mov dl, bl
and dl, 0xf0
cmp dl, 0xe0
jne 0x44ff9d
movzx edx, byte [esi + 1]
add dword [esp + 0x1c], 3
and ebx, 0xf
and edx, 0x3f
shl ebx, 6
or ebx, edx
movzx edx, byte [ebp]
and edx, 0x3f
shl ebx, 6
or ebx, edx
mov edx, 3
sub dword [esp + 0x10], edx
sub dword [esp + 0x18], edx
add ecx, edx
add ebp, edx
add esi, 3
mov dword [esp + 0x14], ecx
sub edi, 2
mov edx, 1
jmp 0x450031
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x24]
ja 0x44fffe
mov dl, bl
and dl, 0xf8
cmp dl, 0xf0
jne 0x44fffe
movzx edx, byte [esi + 1]
add dword [esp + 0x1c], 4
and ebx, 7
and edx, 0x3f
shl ebx, 6
or ebx, edx
movzx edx, byte [ebp]
and edx, 0x3f
shl ebx, 6
or ebx, edx
movzx edx, byte [ecx]
and edx, 0x3f
shl ebx, 6
or ebx, edx
mov edx, 4
sub dword [esp + 0x10], edx
sub dword [esp + 0x18], edx
add ecx, edx
add ebp, edx
add esi, 4
mov dword [esp + 0x14], ecx
sub edi, 3
mov edx, 1
jmp 0x450031
add dword [esp + 0x1c], 1
mov edx, 1
xor ebx, ebx
add esi, 1
add ecx, edx
mov dword [esp + 0x14], ecx
jmp 0x450027
mov edx, 1
add dword [esp + 0x1c], edx
add esi, edx
add dword [esp + 0x14], edx
movzx ebx, bl
sub dword [esp + 0x10], edx
add ebp, edx
sub dword [esp + 0x18], edx
cmp eax, ebx
jne 0x450051
mov eax, dword [esp + 0x10]
sub eax, edi
cmp eax, dword [esp + 0x18]
jge 0x44fe00
xor esi, esi
jmp 0x45034f
mov edx, 1
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x38]
je 0x4500a1
add dword [esp + 0x20], edx
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x20]
jmp 0x44fde0
mov esi, 1
jmp 0x45034f
mov edx, dword [ebp + 0x14]
add ebp, 0x18
test bl, 4
je 0x450099
push edx
push ebp
push esi
push ecx
call fcn.0041e310
mov esi, eax
jmp 0x45034f
cmp edx, esi
mov dword [esp + 0x34], ebp
jle 0x4500a8
xor esi, esi
jmp 0x45034f
lea edi, [esi + ecx]
sub ecx, ebp
lea ebx, [edx + ebp]
mov eax, ecx
sub eax, edx
mov dword [esp + 0x24], ebx
add eax, esi
sub ebx, ebp
sub edi, ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x3c], edi
mov edx, 1
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x20]
lea eax, [esi + 3]
mov dword [esp + 0x1c], eax
lea eax, [esi + 4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
lea ebp, [esi + 2]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
lea esp, [esp]
cmp esi, dword [esp + 0x24]
jae 0x45034d
mov al, byte [esi + edi]
mov bl, byte [esi]
mov ecx, dword [0x599db8]
movzx edx, al
cmp byte [edx + ecx], bl
jne 0x450138
mov edx, 1
add dword [esp + 0x18], edx
add dword [esp + 0x1c], edx
sub dword [esp + 0x10], edx
add esi, edx
add ebp, edx
sub dword [esp + 0x14], edx
jmp 0x450100
test al, al
jns 0x450331
mov ecx, dword [esp + 0x10]
sub ecx, edi
cmp ecx, 2
jl 0x450177
mov dl, al
and dl, 0xe0
cmp dl, 0xc0
jne 0x450177
movzx eax, byte [esi + edi]
movzx ecx, byte [esi + edi + 1]
and eax, 0x1f
shl eax, 6
and ecx, 0x3f
or eax, ecx
push eax
call fcn.00409c90
add edi, 1
jmp 0x4501f8
cmp ecx, 3
jl 0x4501b2
mov dl, al
and dl, 0xf0
cmp dl, 0xe0
jne 0x4501b2
movzx eax, byte [esi + edi]
movzx ecx, byte [esi + edi + 1]
movzx edx, byte [esi + edi + 2]
and eax, 0xf
shl eax, 6
and ecx, 0x3f
or eax, ecx
shl eax, 6
and edx, 0x3f
or eax, edx
push eax
call fcn.00409c90
add edi, 2
jmp 0x4501f8
cmp ecx, 4
jl 0x4501f6
and al, 0xf8
cmp al, 0xf0
jne 0x4501f6
movzx eax, byte [esi + edi]
movzx ecx, byte [esi + edi + 1]
movzx edx, byte [esi + edi + 2]
and eax, 7
shl eax, 6
and ecx, 0x3f
or eax, ecx
movzx ecx, byte [esi + edi + 3]
shl eax, 6
and edx, 0x3f
or eax, edx
shl eax, 6
and ecx, 0x3f
or eax, ecx
push eax
call fcn.00409c90
add edi, 3
jmp 0x4501f8
xor eax, eax
test bl, bl
mov edx, 1
jns 0x450302
mov ecx, dword [esp + 0x24]
cmp ebp, ecx
ja 0x45024b
mov dl, bl
and dl, 0xe0
cmp dl, 0xc0
jne 0x45024b
movzx ecx, byte [esi + 1]
mov edx, 2
add dword [esp + 0x18], edx
add dword [esp + 0x1c], edx
sub dword [esp + 0x10], edx
sub dword [esp + 0x14], edx
and ebx, 0x1f
and ecx, 0x3f
shl ebx, 6
add esi, edx
add ebp, edx
mov edx, 1
or ecx, ebx
sub edi, edx
jmp 0x450319
cmp dword [esp + 0x1c], ecx
ja 0x45029c
mov dl, bl
and dl, 0xf0
cmp dl, 0xe0
jne 0x45029c
movzx ecx, byte [esi + 1]
movzx edx, byte [ebp]
and ecx, 0x3f
and ebx, 0xf
shl ebx, 6
or ecx, ebx
and edx, 0x3f
shl ecx, 6
or ecx, edx
mov edx, 3
add dword [esp + 0x18], edx
add dword [esp + 0x1c], edx
sub dword [esp + 0x10], edx
sub dword [esp + 0x14], edx
add esi, edx
add ebp, edx
sub edi, 2
mov edx, 1
jmp 0x450319
cmp dword [esp + 0x18], ecx
ja 0x4502fb
mov cl, bl
and cl, 0xf8
cmp cl, 0xf0
jne 0x4502fb
movzx ecx, byte [esi + 1]
movzx edx, byte [ebp]
add dword [esp + 0x18], 4
and ebx, 7
and ecx, 0x3f
shl ebx, 6
or ecx, ebx
and edx, 0x3f
shl ecx, 6
or ecx, edx
mov edx, dword [esp + 0x1c]
movzx ebx, byte [edx]
and ebx, 0x3f
shl ecx, 6
or ecx, ebx
mov ebx, 4
sub dword [esp + 0x10], ebx
sub dword [esp + 0x14], ebx
add edx, ebx
add esi, 4
add ebp, ebx
mov dword [esp + 0x1c], edx
sub edi, 3
lea edx, [ebx - 3]
jmp 0x450319
xor ecx, ecx
lea edx, [ecx + 1]
jmp 0x450305
movzx ecx, bl
add dword [esp + 0x18], edx
add dword [esp + 0x1c], edx
sub dword [esp + 0x10], edx
add esi, edx
add ebp, edx
sub dword [esp + 0x14], edx
cmp eax, ecx
jne 0x450336
mov eax, dword [esp + 0x10]
sub eax, edi
cmp eax, dword [esp + 0x14]
jge 0x450100
xor esi, esi
jmp 0x45034f
mov edx, 1
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x38]
je 0x4500a1
add dword [esp + 0x20], edx
jmp 0x4500d3
mov esi, edx
test byte [esp + 0x28], 0x10
je 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
lea ebx, [edx - 0x22]
test bl, 2
mov dword [esp + 0x30], ebx
je 0x450398
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x45038c
call fcn.0042bf80
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x4503ab
call fcn.0042bf80
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x4503ab
mov cl, byte [esi + 4]
cmp cl, 0xff
lea eax, [esi + 5]
jne 0x4503a8
mov esi, dword [esi - 4]
jmp 0x4503ab
movzx esi, cl
test bl, 1
je 0x4504c8
mov ecx, dword [ebp + 0x14]
test ecx, ecx
lea edx, [ebp + 0x18]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x34], edx
je 0x45050f
mov ebx, dword [0x599db8]
mov edi, eax
mov dword [esp + 0x24], edi
mov ebp, esi
mov esi, dword [esp + 0x28]
mov ecx, ebp
mov eax, edx
sub esi, ebp
test ecx, ecx
je 0x4504d2
movzx edx, byte [edi]
mov dl, byte [edx + ebx]
cmp dl, byte [eax]
jne 0x450459
sub ecx, 1
lea edx, [ecx + esi]
add edi, 1
add eax, 1
test edx, edx
jne 0x4503e2
mov al, byte [eax - 1]
cmp al, 0x61
jb 0x45040f
cmp al, 0x7a
jbe 0x45042b
cmp al, 0x41
jb 0x450417
cmp al, 0x5a
jbe 0x45042b
cmp al, 0x30
jb 0x45041f
cmp al, 0x39
jbe 0x45042b
cmp al, 0x5f
je 0x45042b
test al, al
jns 0x45050f
test ecx, ecx
je 0x45050f
mov al, byte [edi]
cmp al, 0x61
jb 0x45043d
cmp al, 0x7a
jbe 0x450459
cmp al, 0x41
jb 0x450445
cmp al, 0x5a
jbe 0x450459
cmp al, 0x30
jb 0x45044d
cmp al, 0x39
jbe 0x450459
cmp al, 0x5f
je 0x450459
test al, al
jns 0x45050f
mov edx, dword [esp + 0x34]
mov cl, byte [edx]
mov edi, dword [esp + 0x24]
add edi, 1
sub ebp, 1
cmp cl, 0x61
mov dword [esp + 0x24], edi
jb 0x450477
cmp cl, 0x7a
jbe 0x450498
cmp cl, 0x41
jb 0x450481
cmp cl, 0x5a
jbe 0x450498
cmp cl, 0x30
jb 0x45048b
cmp cl, 0x39
jbe 0x450498
cmp cl, 0x5f
je 0x450498
test cl, cl
jns 0x4503d8
test ebp, ebp
je 0x4503d8
mov al, byte [edi - 1]
cmp al, 0x61
jb 0x4504ab
cmp al, 0x7a
jbe 0x450463
cmp al, 0x41
jb 0x4504b3
cmp al, 0x5a
jbe 0x450463
cmp al, 0x30
jb 0x4504bb
cmp al, 0x39
jbe 0x450463
cmp al, 0x5f
je 0x450463
test al, al
js 0x450463
jmp 0x4503d8
mov edx, dword [ebp + 0x14]
add ebp, 0x18
cmp edx, esi
jle 0x4504d6
xor esi, esi
jmp 0x450514
sub eax, ebp
mov ecx, eax
mov edi, ecx
sub edi, edx
add edi, esi
mov esi, dword [0x599db8]
lea ebx, [edx + ebp]
lea esp, [esp]
mov eax, ebp
cmp eax, ebx
jae 0x45050f
movzx edx, byte [eax + ecx]
mov dl, byte [edx + esi]
cmp dl, byte [eax]
jne 0x450506
add eax, 1
jmp 0x4504f2
cmp ecx, edi
je 0x4504d2
add ecx, 1
jmp 0x4504f0
mov esi, 1
test byte [esp + 0x30], 4
je 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
lea ebx, [edx - 0x2a]
test bl, 4
mov dword [esp + 0x28], ebx
je 0x45055d
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x450551
call fcn.0042bf80
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450570
call fcn.0042bf80
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450570
mov cl, byte [esi + 4]
cmp cl, 0xff
lea eax, [esi + 5]
jne 0x45056d
mov esi, dword [esi - 4]
jmp 0x450570
movzx esi, cl
test bl, 1
je 0x4505c7
test bl, 2
je 0x4505b6
mov ebx, dword [ebp + 0x14]
cmp esi, ebx
mov edx, esi
jl 0x450585
mov edx, ebx
test edx, edx
lea edi, [ebp + 0x18]
je 0x4505a3
sub edi, eax
mov edi, edi
movzx ebp, byte [eax + edi]
movzx ecx, byte [eax]
sub ecx, ebp
jne 0x4505a7
add eax, 1
sub edx, 1
jne 0x450590
sub esi, ebx
mov ecx, esi
mov ebx, dword [esp + 0x28]
xor edx, edx
test ecx, ecx
sete dl
mov esi, edx
jmp 0x4505f5
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00422c20
jmp 0x4505ec
test bl, 2
je 0x4505dd
mov edx, dword [ebp + 0x14]
push edx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00414450
jmp 0x4505ec
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00422980
mov esi, eax
neg esi
sbb esi, esi
add esi, 1
test bl, 8
je 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
add edx, 0xffffffc6
test dl, 1
mov dword [esp + 0x28], edx
je 0x45063c
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x450630
call fcn.0042bf80
mov edx, dword [edi + 8]
mov esi, dword [edi]
jmp 0x45064e
call fcn.0042bf80
mov edx, dword [edi + 8]
mov esi, dword [edi]
jmp 0x45064e
mov al, byte [esi + 4]
cmp al, 0xff
lea edx, [esi + 5]
jne 0x45064b
mov esi, dword [esi - 4]
jmp 0x45064e
movzx esi, al
test esi, esi
mov edi, dword [ebp + 0x14]
lea eax, [ebp + 0x18]
mov ecx, esi
je 0x450684
mov ebp, dword [0x599db8]
mov esi, edx
sub esi, eax
test edi, edi
je 0x450684
movzx edx, byte [eax + esi]
movzx edx, byte [edx + ebp]
movzx ebx, byte [eax]
sub edx, ebx
jne 0x4506a8
sub ecx, 1
add eax, 1
sub edi, 1
test ecx, ecx
jne 0x450664
sub ecx, edi
xor eax, eax
test ecx, ecx
sete al
test byte [esp + 0x28], 2
mov esi, eax
je 0x4523a1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523a1
mov ecx, edx
jmp 0x450686
lea ebx, [edx - 0x3e]
test bl, 8
je 0x4506d8
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x4506cc
call fcn.0042bf80
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x4506eb
call fcn.0042bf80
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x4506eb
mov cl, byte [esi + 4]
cmp cl, 0xff
lea eax, [esi + 5]
jne 0x4506e8
mov esi, dword [esi - 4]
jmp 0x4506eb
movzx esi, cl
test bl, 1
je 0x450749
test bl, 2
je 0x450722
test bl, 4
je 0x45070e
mov edx, dword [ebp + 0x14]
push edx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00520bd0
jmp 0x45079a
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00520f10
jmp 0x45079a
test bl, 4
je 0x450738
mov edx, dword [ebp + 0x14]
push edx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00520d10
jmp 0x45079a
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00520e10
jmp 0x45079a
test bl, 2
je 0x450775
test bl, 4
je 0x450764
mov edx, dword [ebp + 0x14]
push edx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00521e10
jmp 0x45079a
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00521f50
jmp 0x45079a
test bl, 4
je 0x45078b
mov edx, dword [ebp + 0x14]
push edx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00521eb0
jmp 0x45079a
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00521f00
test bl, 0x10
mov esi, eax
je 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
lea ebx, [edx - 0x5e]
test bl, 2
je 0x4507df
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x4507d3
call fcn.0042bf80
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x4507f2
call fcn.0042bf80
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x4507f2
mov cl, byte [esi + 4]
cmp cl, 0xff
lea eax, [esi + 5]
jne 0x4507ef
mov esi, dword [esi - 4]
jmp 0x4507f2
movzx esi, cl
test bl, 1
je 0x450808
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00520c70
jmp 0x450817
mov edx, dword [ebp + 0x14]
push edx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00521e60
test bl, 4
mov esi, eax
je 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
lea ebx, [edx - 0x66]
test bl, 4
je 0x45085c
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x450850
call fcn.0042bf80
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x45086f
call fcn.0042bf80
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x45086f
mov cl, byte [esi + 4]
cmp cl, 0xff
lea eax, [esi + 5]
jne 0x45086c
mov esi, dword [esi - 4]
jmp 0x45086f
movzx esi, cl
test bl, 1
je 0x45089b
test bl, 2
je 0x45088a
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.0051edc0
jmp 0x4508c0
mov edx, dword [ebp + 0x14]
push edx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.0051f830
jmp 0x4508c0
test bl, 2
je 0x4508b1
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.0051f050
jmp 0x4508c0
mov edx, dword [ebp + 0x14]
push edx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.0051f440
test bl, 8
mov esi, eax
je 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
lea ebx, [edx - 0x76]
test bl, 1
je 0x450905
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x4508f9
call fcn.0042bf80
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450918
call fcn.0042bf80
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450918
mov cl, byte [esi + 4]
cmp cl, 0xff
lea eax, [esi + 5]
jne 0x450915
mov esi, dword [esi - 4]
jmp 0x450918
movzx esi, cl
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.0051ef00
mov esi, eax
test bl, 2
je 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
lea ebx, [edx - 0x8e]
test bl, 4
je 0x45096f
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x450963
call fcn.0042bf80
mov edx, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450981
call fcn.0042bf80
mov edx, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450981
mov al, byte [esi + 4]
cmp al, 0xff
lea edx, [esi + 5]
jne 0x45097e
mov esi, dword [esi - 4]
jmp 0x450981
movzx esi, al
test bl, 1
je 0x4509cc
test bl, 2
je 0x4509bb
mov ecx, dword [ebp + 0x14]
cmp ecx, esi
lea eax, [ebp + 0x18]
jle 0x450999
xor esi, esi
jmp 0x4509f3
sub esi, eax
sub esi, ecx
lea edi, [eax + ecx]
add esi, edx
cmp eax, edi
je 0x4509b4
mov cl, byte [esi + eax]
cmp cl, byte [eax]
jne 0x450995
add eax, 1
cmp eax, edi
jne 0x4509a6
mov esi, 1
jmp 0x4509f3
mov eax, dword [ebp + 0x14]
push eax
add ebp, 0x18
push ebp
push esi
push edx
call fcn.004236f0
jmp 0x4509f1
test bl, 2
je 0x4509e2
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push edx
call fcn.0041e5e0
jmp 0x4509f1
mov eax, dword [ebp + 0x14]
push eax
add ebp, 0x18
push ebp
push esi
push edx
call fcn.00423450
mov esi, eax
test bl, 8
je 0x4523a1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523a1
add edx, 0xffffff62
test dl, 1
mov dword [esp + 0x28], edx
je 0x450a3d
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x450a31
call fcn.0042bf80
mov ebx, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450a4f
call fcn.0042bf80
mov ebx, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450a4f
mov al, byte [esi + 4]
cmp al, 0xff
lea ebx, [esi + 5]
jne 0x450a4c
mov esi, dword [esi - 4]
jmp 0x450a4f
movzx esi, al
mov ecx, dword [ebp + 0x14]
cmp ecx, esi
lea eax, [ebp + 0x18]
jg 0x450a89
sub esi, eax
sub esi, ecx
lea edx, [eax + ecx]
add esi, ebx
cmp eax, edx
je 0x450a82
mov edi, dword [0x599db8]
lea esp, [esp]
movzx ecx, byte [esi + eax]
mov cl, byte [ecx + edi]
cmp cl, byte [eax]
jne 0x450a89
add eax, 1
cmp eax, edx
jne 0x450a70
mov esi, 1
jmp 0x450a8b
xor esi, esi
test byte [esp + 0x28], 2
je 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
mov al, byte [esi + 4]
cmp al, 0xff
lea ebx, [edx - 0xa2]
lea ecx, [esi + 5]
jne 0x450ab9
mov esi, dword [esi - 4]
jmp 0x450abc
movzx esi, al
lea edx, [ebp + 0x18]
push edx
mov edx, dword [ebp + 0x14]
push edx
mov eax, ebx
and eax, 3
mov eax, dword [eax*4 + 0x58ce5c]
push esi
push ecx
call eax
test bl, 4
mov esi, eax
je 0x4523a1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523a1
mov al, byte [esi + 4]
cmp al, 0xff
lea ebx, [edx - 0x176]
lea ecx, [esi + 5]
jne 0x450b02
mov esi, dword [esi - 4]
jmp 0x450b05
movzx esi, al
lea eax, [ebp + 0x18]
push eax
mov eax, dword [ebp + 0x14]
push eax
mov edx, ebx
push esi
and edx, 3
push ecx
mov ecx, dword [edx*4 + 0x58ce6c]
call ecx
test bl, 4
mov esi, eax
je 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
mov cl, byte [esi + 4]
cmp cl, 0xff
lea eax, [esi + 5]
jne 0x450b46
mov esi, dword [esi - 4]
jmp 0x450b49
movzx esi, cl
lea eax, [esi + eax - 1]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x14]
xor ecx, ecx
sub eax, 1
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov edx, dword [ebp + eax*8 + 0x18]
cmp esi, edx
jl 0x450b80
mov esi, edx
test esi, esi
mov ebx, dword [esp + 0x24]
mov edi, dword [ebp + eax*8 + 0x1c]
je 0x450bf9
mov ecx, ebx
movzx edx, byte [ecx]
mov ecx, dword [0x599db8]
movzx edx, byte [edx + ecx]
movzx ecx, byte [edi]
sub edx, ecx
jne 0x450bc2
sub ebx, 1
sub esi, 1
je 0x450bf5
movzx edx, byte [ebx]
mov ecx, dword [0x599db8]
movzx edx, byte [edx + ecx]
movzx ecx, byte [edi - 1]
sub edi, 1
sub edx, ecx
je 0x450ba2
test edx, edx
jge 0x450c0a
mov ecx, dword [esp + 0x20]
add eax, 0xffffffff
mov dword [esp + 0x18], eax
cmp ecx, dword [esp + 0x18]
jle 0x450b65
xor esi, esi
cmp dword [esp + 0x10], 0xab
jne 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
sub edx, dword [ebp + eax*8 + 0x18]
test edx, edx
jle 0x450c13
cmp byte [ebx], 0x2e
je 0x450c1c
lea ecx, [eax + 1]
mov dword [esp + 0x20], ecx
jmp 0x450bd1
add eax, 0xffffffff
mov dword [esp + 0x18], eax
jmp 0x450bd1
mov esi, 1
jmp 0x450bd9
mov cl, byte [esi + 4]
cmp cl, 0xff
lea eax, [esi + 5]
jne 0x450c33
mov esi, dword [esi - 4]
jmp 0x450c36
movzx esi, cl
add eax, esi
test esi, esi
mov ecx, esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], ecx
je 0x450c66
sub eax, 1
cmp byte [eax], 0x2e
je 0x450c59
sub ecx, 1
jne 0x450c46
mov dword [esp + 0x20], ecx
jmp 0x450c62
add eax, 1
sub esi, ecx
mov dword [esp + 0x20], esi
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x14]
xor ecx, ecx
sub eax, 1
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
sub eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x18]
sar eax, 1
add eax, ecx
mov ebx, dword [ebp + eax*8 + 0x1c]
mov esi, dword [ebp + eax*8 + 0x18]
sub ebx, edx
test edi, edi
mov dword [esp + 0x24], esi
je 0x450cda
test esi, esi
je 0x450cda
movzx ecx, byte [edx]
mov esi, dword [0x599db8]
movzx esi, byte [ecx + esi]
movzx ecx, byte [edx + ebx]
sub esi, ecx
jne 0x450cc9
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
sub esi, 1
add edx, 1
sub edi, 1
jmp 0x450c95
test esi, esi
jge 0x450ceb
mov ecx, dword [esp + 0x1c]
add eax, 0xffffffff
mov dword [esp + 0x14], eax
jmp 0x450cf2
sub edi, esi
je 0x450d00
test edi, edi
jge 0x450ceb
add eax, 0xffffffff
mov dword [esp + 0x14], eax
jmp 0x450cf2
lea ecx, [eax + 1]
mov dword [esp + 0x1c], ecx
cmp ecx, dword [esp + 0x14]
jle 0x450c76
xor esi, esi
jmp 0x450d05
mov esi, 1
cmp dword [esp + 0x10], 0x17f
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
lea ebx, [edx - 0x7a]
test bl, 4
je 0x450d4d
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x450d41
call fcn.0042bf80
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450d60
call fcn.0042bf80
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450d60
mov cl, byte [esi + 4]
cmp cl, 0xff
lea eax, [esi + 5]
jne 0x450d5d
mov esi, dword [esi - 4]
jmp 0x450d60
movzx esi, cl
mov edx, dword [ebp + 0x14]
push edx
add ebp, 0x18
push ebp
mov ecx, ebx
push esi
and ecx, 3
push eax
mov eax, dword [ecx*4 + 0x58ce7c]
call eax
test bl, 8
mov esi, eax
je 0x4523a1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
lea ebx, [edx - 0x128]
mov eax, 0x58ce8c
jne 0x450dab
mov eax, 0x58ce9c
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, ebx
add ebp, 0x18
and edx, 3
mov edx, dword [eax + edx*4]
push ebp
push esi
call edx
test bl, 4
mov esi, eax
je 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
mov eax, fcn.0042ecd0
jne 0x450deb
mov eax, fcn.004251c0
mov ecx, dword [ebp + 0x14]
push ecx
lea edx, [ebp + 0x18]
push edx
push esi
call eax
cmp dword [ebp + 0xc], 0x131
mov esi, eax
jne 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
lea ebx, [edx - 0x132]
mov eax, 0x58ceac
jne 0x450e2d
mov eax, 0x58cebc
mov edx, dword [ebp + 0x14]
push edx
add ebp, 0x18
mov ecx, ebx
and ecx, 3
mov eax, dword [eax + ecx*4]
push ebp
push esi
call eax
test bl, 4
mov esi, eax
je 0x4523a1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
mov eax, fcn.00426000
jne 0x450e6d
mov eax, fcn.00426000
mov edx, dword [ebp + 0x14]
push edx
lea ecx, [ebp + 0x18]
push ecx
push esi
call eax
cmp dword [ebp + 0xc], 0x13b
mov esi, eax
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
lea ebx, [edx - 0x13c]
mov eax, 0x58cecc
jne 0x450e2d
mov eax, 0x58cedc
jmp 0x450e2d
cmp dword [esp + 0x1b0], 0
mov eax, fcn.00430790
jne 0x450ec8
mov eax, fcn.00430790
mov edx, dword [ebp + 0x14]
push edx
lea ecx, [ebp + 0x18]
push ecx
push esi
call eax
cmp dword [ebp + 0xc], 0x145
mov esi, eax
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
lea ebx, [edx - 0x8a]
test bl, 1
je 0x450f1f
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x450f13
call fcn.0042bf80
mov ecx, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450f31
call fcn.0042bf80
mov ecx, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450f31
mov al, byte [esi + 4]
cmp al, 0xff
lea ecx, [esi + 5]
jne 0x450f2e
mov esi, dword [esi - 4]
jmp 0x450f31
movzx esi, al
mov edx, dword [ebp + 0x14]
cmp edx, esi
lea eax, [ebp + 0x18]
jg 0x450f6c
add edx, eax
sub ecx, eax
cmp eax, edx
mov esi, ecx
je 0x450f62
mov edi, dword [0x599db8]
jmp 0x450f50
movzx ecx, byte [esi + eax]
mov cl, byte [ecx + edi]
cmp cl, byte [eax]
jne 0x450f6c
add eax, 1
cmp eax, edx
jne 0x450f50
mov esi, 1
jmp 0x450929
xor esi, esi
jmp 0x450929
cmp dword [esp + 0x1b0], 0
je 0x450f88
xor eax, eax
cmp dword [esi], eax
sete al
mov esi, eax
jmp 0x450f91
xor ecx, ecx
cmp dword [esi], ecx
sete cl
mov esi, ecx
cmp edx, 0xad
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
je 0x450fc0
mov eax, dword [ebx]
push eax
call fcn.00430920
jmp 0x450fc8
mov ecx, dword [ebx]
push ecx
call fcn.004271a0
cmp dword [ebp + 0xc], 0xaf
mov esi, eax
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
je 0x450ffa
mov eax, dword [ebx]
push eax
call fcn.00430920
jmp 0x451002
mov ecx, dword [ebx]
push ecx
call fcn.00426f40
cmp dword [ebp + 0xc], 0xb1
mov esi, eax
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
je 0x451034
mov eax, dword [ebx]
push eax
call fcn.00430b20
jmp 0x45103c
mov ecx, dword [ebx]
push ecx
call fcn.004273a0
cmp dword [ebp + 0xc], 0xb3
mov esi, eax
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
je 0x45106e
mov eax, dword [ebx]
push eax
call fcn.00430d80
jmp 0x451076
mov ecx, dword [ebx]
push ecx
call fcn.00427660
cmp dword [ebp + 0xc], 0xb5
mov esi, eax
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
je 0x4510a8
mov eax, dword [ebx]
push eax
call fcn.00431000
jmp 0x4510b0
mov ecx, dword [ebx]
push ecx
call fcn.004278e0
cmp dword [ebp + 0xc], 0xb7
mov esi, eax
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
je 0x4510e2
mov eax, dword [ebx]
push eax
call fcn.00431280
jmp 0x4510ea
mov ecx, dword [ebx]
push ecx
call fcn.00427b60
cmp dword [ebp + 0xc], 0xb9
mov esi, eax
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
je 0x45111c
mov eax, dword [ebx]
push eax
call fcn.00431500
jmp 0x451124
mov ecx, dword [ebx]
push ecx
call fcn.00427e60
cmp dword [ebp + 0xc], 0xbb
mov esi, eax
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
je 0x45116b
mov eax, esi
mov esi, dword [esi]
test esi, esi
je 0x45115b
mov eax, esi
mov esi, dword [esi]
test esi, esi
jne 0x451153
cmp byte [eax + 4], 0xff
jne 0x451166
mov eax, dword [eax - 8]
jmp 0x4511a6
mov eax, dword [eax - 4]
jmp 0x4511a6
mov ecx, dword [esi]
test ecx, ecx
jne 0x451185
cmp byte [esi + 4], 0xff
jne 0x45117e
mov esi, dword [esi - 8]
mov eax, esi
jmp 0x4511a6
mov esi, dword [esi - 4]
mov eax, esi
jmp 0x4511a6
mov eax, dword [ecx]
test eax, eax
je 0x451198
jmp 0x451190
mov ecx, eax
mov eax, dword [eax]
test eax, eax
jne 0x451190
cmp byte [ecx + 4], 0xff
jne 0x4511a3
mov eax, dword [ecx - 8]
jmp 0x4511a6
mov eax, dword [ecx - 4]
mov eax, dword [eax + 4]
mov ebp, dword [ebp + 0x14]
cmp eax, ebp
jb 0x4511b9
ja 0x4511b9
mov esi, 1
jmp 0x4511bb
xor esi, esi
cmp edx, 0xbd
jne 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
mov al, byte [esi + 4]
lea ebx, [edx - 0xbe]
je 0x451237
test bl, 1
je 0x451287
cmp al, 0xff
jne 0x4511fa
mov eax, dword [esi - 4]
jmp 0x4511fd
movzx eax, al
push eax
lea ecx, [esi + 5]
push ecx
call fcn.00526ed0
mov esi, dword [esi]
test esi, esi
mov edi, eax
je 0x451233
nop
mov al, byte [esi + 4]
cmp al, 0xff
jne 0x45121c
mov eax, dword [esi - 4]
jmp 0x45121f
movzx eax, al
push eax
lea edx, [esi + 5]
push edx
call fcn.00526ed0
mov esi, dword [esi]
test esi, esi
lea edi, [edi + eax + 1]
jne 0x451210
mov eax, edi
jmp 0x45129d
test bl, 1
je 0x451287
cmp al, 0xff
jne 0x451245
mov eax, dword [esi - 4]
jmp 0x451248
movzx eax, al
push eax
lea eax, [esi + 5]
push eax
call fcn.00526ed0
mov esi, dword [esi]
test esi, esi
mov edi, eax
je 0x451283
lea ebx, [ebx]
mov al, byte [esi + 4]
cmp al, 0xff
jne 0x45126c
mov eax, dword [esi - 4]
jmp 0x45126f
movzx eax, al
push eax
lea ecx, [esi + 5]
push ecx
call fcn.00526ed0
mov esi, dword [esi]
test esi, esi
lea edi, [edi + eax + 1]
jne 0x451260
mov eax, edi
jmp 0x45129d
cmp al, 0xff
jne 0x451290
mov eax, dword [esi - 4]
jmp 0x451293
movzx eax, al
push eax
add esi, 5
push esi
call fcn.00526ed0
cmp eax, dword [ebp + 0x14]
jl 0x450f6c
cmp eax, dword [ebp + 0x18]
jg 0x450f6c
mov esi, 1
jmp 0x450929
mov esi, dword [esp + 0x1bc]
jmp 0x4523a1
mov esi, dword [esi]
xor eax, eax
cmp dword [esp + 0x1b0], eax
je 0x4512e1
test esi, esi
je 0x4512ee
mov esi, dword [esi]
add eax, 1
test esi, esi
jne 0x4512d6
jmp 0x4512ee
test esi, esi
je 0x4512ee
mov esi, dword [esi]
add eax, 1
test esi, esi
jne 0x4512e5
cmp eax, dword [ebp + 0x14]
jl 0x4512ff
cmp eax, dword [ebp + 0x18]
jg 0x4512ff
mov esi, 1
jmp 0x451301
xor esi, esi
cmp edx, 0xc5
jne 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
lea ecx, [esp + 0x90]
push ecx
call fcn.00401210
cmp dword [esp + 0x1b0], 0
push esi
je 0x451342
lea edx, [esp + 0x94]
push edx
call fcn.0042e4b0
jmp 0x45134f
lea eax, [esp + 0x94]
push eax
call fcn.0042e4b0
mov ecx, dword [ebp + 0x18]
mov eax, dword [esp + 0x90]
push ecx
mov ecx, dword [esp + 0x9c]
lea edx, [ebp + 0x1c]
push edx
mov edx, dword [ebp + 0x14]
push eax
push ecx
call edx
cmp dword [ebp + 0xc], 0x119
mov esi, eax
jne 0x451380
xor eax, eax
test esi, esi
sete al
mov esi, eax
lea ecx, [esp + 0x90]
push ecx
call fcn.00401230
jmp 0x4523a1
lea edx, [esp + 0x90]
push edx
call fcn.00401210
cmp dword [esp + 0x1b0], 0
push esi
je 0x4513b9
lea eax, [esp + 0x94]
push eax
call fcn.0042e4b0
jmp 0x4513c6
lea ecx, [esp + 0x94]
push ecx
call fcn.0042e4b0
mov edx, dword [ebp + 0x18]
mov ecx, dword [esp + 0x90]
push edx
mov edx, dword [esp + 0x9c]
lea eax, [ebp + 0x20]
push eax
mov eax, dword [ebp + 0x14]
push ecx
push edx
call eax
cmp dword [ebp + 0xc], 0x11b
mov esi, eax
jne 0x4513f7
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
lea edx, [esp + 0x90]
push edx
call fcn.00401230
jmp 0x4523a1
lea eax, [esp + 0x90]
push eax
call fcn.00401210
cmp dword [esp + 0x1b0], 0
push esi
je 0x451430
lea ecx, [esp + 0x94]
push ecx
call fcn.0042e4b0
jmp 0x45143d
lea edx, [esp + 0x94]
push edx
call fcn.0042e4b0
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x14]
push eax
mov eax, dword [esp + 0x94]
lea edx, [ebp + ecx*4 + 0x20]
mov ecx, dword [esp + 0x9c]
push edx
mov edx, dword [ebp + 0x18]
push eax
push ecx
call edx
cmp dword [ebp + 0xc], 0x11d
jmp 0x451373
mov ebx, dword [ebx]
push esi
push ebx
call fcn.00454fe0
test eax, eax
je 0x45147e
mov edx, dword [eax]
mov eax, dword [edx + 8]
jmp 0x451480
xor eax, eax
cmp eax, dword [ebp + 0x14]
jb 0x451491
cmp eax, dword [ebp + 0x18]
ja 0x451491
mov esi, 1
jmp 0x451493
xor esi, esi
cmp dword [ebp + 0xc], 0x149
jne 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
mov ebx, dword [ebx]
push esi
push ebx
call fcn.00454fe0
test eax, eax
je 0x4514c4
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
jmp 0x4514c8
xor ecx, ecx
xor eax, eax
cmp eax, dword [ebp + 0x1c]
jb 0x4514e7
ja 0x4514d4
cmp ecx, dword [ebp + 0x18]
jb 0x4514e7
cmp eax, dword [ebp + 0x24]
ja 0x4514e7
jb 0x4514e0
cmp ecx, dword [ebp + 0x20]
ja 0x4514e7
mov esi, 1
jmp 0x4514e9
xor esi, esi
cmp dword [ebp + 0xc], 0x14b
jne 0x4523a1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523a1
mov eax, dword [ebx + 0x44]
add eax, dword [ebx + 0x2c]
cmp eax, dword [ebp + 0x14]
sbb esi, esi
neg esi
cmp edx, 0x14f
jne 0x4523a1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push ebp
push esi
je 0x45153e
call fcn.004323a0
jmp 0x451543
call fcn.00428f90
cmp dword [ebp + 0xc], 0x151
mov esi, eax
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
push esi
push ebx
call fcn.00424c40
cmp edx, dword [ebp + 0x1c]
jb 0x451586
ja 0x451573
cmp eax, dword [ebp + 0x18]
jb 0x451586
cmp edx, dword [ebp + 0x24]
ja 0x451586
jb 0x45157f
cmp eax, dword [ebp + 0x20]
ja 0x451586
mov esi, 1
jmp 0x451588
xor esi, esi
cmp dword [ebp + 0xc], 0xc7
jne 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
mov al, byte [esi + 4]
cmp al, 0xff
jne 0x4515b3
mov ecx, dword [esi - 4]
lea esi, [ecx + esi + 5]
jmp 0x4515ba
movzx eax, al
lea esi, [eax + esi + 5]
mov eax, dword [esi]
mov esi, dword [esi + 4]
cmp esi, dword [ebp + 0x1c]
jb 0x4515de
ja 0x4515cb
cmp eax, dword [ebp + 0x18]
jb 0x4515de
cmp esi, dword [ebp + 0x24]
ja 0x4515de
jb 0x4515d7
cmp eax, dword [ebp + 0x20]
ja 0x4515de
mov esi, 1
jmp 0x4515e0
xor esi, esi
cmp edx, 0xc9
jne 0x4523a1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
mov al, byte [esi + 4]
je 0x45162d
cmp al, 0xff
jne 0x45161c
mov eax, dword [esi - 4]
lea esi, [eax + esi + 5]
mov eax, dword [ebx]
mov eax, dword [eax + 0x364]
jmp 0x451649
movzx ecx, al
mov eax, dword [ebx]
mov eax, dword [eax + 0x364]
lea esi, [ecx + esi + 5]
jmp 0x451649
cmp al, 0xff
jne 0x45163a
mov ecx, dword [esi - 4]
lea esi, [ecx + esi + 5]
jmp 0x451641
movzx eax, al
lea esi, [eax + esi + 5]
mov ecx, dword [ebx]
mov eax, dword [ecx + 0x360]
mov ecx, dword [esi + eax]
mov eax, dword [esi + eax + 4]
cmp eax, dword [ebp + 0x1c]
jb 0x45166f
ja 0x45165c
cmp ecx, dword [ebp + 0x18]
jb 0x45166f
cmp eax, dword [ebp + 0x24]
ja 0x45166f
jb 0x451668
cmp ecx, dword [ebp + 0x20]
ja 0x45166f
mov esi, 1
jmp 0x451671
xor esi, esi
cmp edx, 0xcb
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
mov al, byte [esi + 4]
je 0x4516be
cmp al, 0xff
jne 0x4516ad
mov eax, dword [esi - 4]
lea esi, [eax + esi + 5]
mov eax, dword [ebx]
mov eax, dword [eax + 0x35c]
jmp 0x4516da
movzx ecx, al
mov eax, dword [ebx]
mov eax, dword [eax + 0x35c]
lea esi, [ecx + esi + 5]
jmp 0x4516da
cmp al, 0xff
jne 0x4516cb
mov ecx, dword [esi - 4]
lea esi, [ecx + esi + 5]
jmp 0x4516d2
movzx eax, al
lea esi, [eax + esi + 5]
mov ecx, dword [ebx]
mov eax, dword [ecx + 0x358]
mov ecx, dword [esi + eax]
mov eax, dword [esi + eax + 4]
cmp eax, dword [ebp + 0x1c]
jb 0x451700
ja 0x4516ed
cmp ecx, dword [ebp + 0x18]
jb 0x451700
cmp eax, dword [ebp + 0x24]
ja 0x451700
jb 0x4516f9
cmp ecx, dword [ebp + 0x20]
ja 0x451700
mov esi, 1
jmp 0x451702
xor esi, esi
cmp edx, 0xcd
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
mov al, byte [esi + 4]
je 0x45174f
cmp al, 0xff
jne 0x45173e
mov eax, dword [esi - 4]
lea esi, [eax + esi + 5]
mov eax, dword [ebx]
mov eax, dword [eax + 0x36c]
jmp 0x45176b
movzx ecx, al
mov eax, dword [ebx]
mov eax, dword [eax + 0x36c]
lea esi, [ecx + esi + 5]
jmp 0x45176b
cmp al, 0xff
jne 0x45175c
mov ecx, dword [esi - 4]
lea esi, [ecx + esi + 5]
jmp 0x451763
movzx eax, al
lea esi, [eax + esi + 5]
mov ecx, dword [ebx]
mov eax, dword [ecx + 0x368]
mov ecx, dword [esi + eax]
mov eax, dword [esi + eax + 4]
cmp eax, dword [ebp + 0x1c]
jb 0x451791
ja 0x45177e
cmp ecx, dword [ebp + 0x18]
jb 0x451791
cmp eax, dword [ebp + 0x24]
ja 0x451791
jb 0x45178a
cmp ecx, dword [ebp + 0x20]
ja 0x451791
mov esi, 1
jmp 0x451793
xor esi, esi
cmp edx, 0xcf
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
mov al, byte [esi + 4]
je 0x4517e0
cmp al, 0xff
jne 0x4517cf
mov eax, dword [esi - 4]
lea esi, [eax + esi + 5]
mov eax, dword [ebx]
mov ecx, dword [eax + 0x374]
jmp 0x4517fc
movzx ecx, al
mov eax, dword [ebx]
lea esi, [ecx + esi + 5]
mov ecx, dword [eax + 0x374]
jmp 0x4517fc
cmp al, 0xff
jne 0x4517ed
mov eax, dword [esi - 4]
lea esi, [eax + esi + 5]
jmp 0x4517f4
movzx ecx, al
lea esi, [ecx + esi + 5]
mov eax, dword [ebx]
mov ecx, dword [eax + 0x370]
mov eax, dword [esi + ecx]
mov ebp, dword [ebp + 0x14]
mov ecx, ebp
and ecx, eax
xor eax, eax
cmp ecx, ebp
sete al
cmp edx, 0xd1
mov esi, eax
jne 0x4523a1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
push ebx
je 0x45183c
call fcn.0042de50
jmp 0x451841
call fcn.00424ca0
mov ecx, dword [ebp + 0x14]
mov edx, ecx
and edx, eax
xor eax, eax
cmp edx, ecx
sete al
cmp dword [ebp + 0xc], 0xd3
mov esi, eax
jne 0x4523a1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
push ebx
je 0x45187f
call fcn.0042df10
jmp 0x451884
call fcn.00424d60
cmp edx, dword [ebp + 0x1c]
jb 0x4518a3
ja 0x451890
cmp eax, dword [ebp + 0x18]
jb 0x4518a3
cmp edx, dword [ebp + 0x24]
ja 0x4518a3
jb 0x45189c
cmp eax, dword [ebp + 0x20]
ja 0x4518a3
mov esi, 1
jmp 0x4518a5
xor esi, esi
cmp dword [ebp + 0xc], 0xd5
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
push ebx
je 0x4518e0
call fcn.0042df10
push esi
push ebx
mov edi, eax
mov dword [esp + 0x34], edx
call fcn.0042df70
jmp 0x4518f2
call fcn.00424d60
push esi
push ebx
mov edi, eax
mov dword [esp + 0x34], edx
call fcn.00424df0
cmp edi, eax
jne 0x451903
cmp dword [esp + 0x2c], edx
jne 0x451903
mov esi, 1
jmp 0x451905
xor esi, esi
cmp dword [ebp + 0xc], 0xd7
jne 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
push ebx
je 0x451940
call fcn.0042df10
push esi
push ebx
mov dword [esp + 0x30], eax
mov edi, edx
call fcn.0042df70
jmp 0x451952
call fcn.00424d60
push esi
push ebx
mov dword [esp + 0x30], eax
mov edi, edx
call fcn.00424df0
cmp edi, edx
jb 0x451965
ja 0x45195e
cmp dword [esp + 0x28], eax
jb 0x451965
mov esi, 1
jmp 0x451967
xor esi, esi
cmp dword [ebp + 0xc], 0xd9
jne 0x4523a1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
push ebx
je 0x4519a2
call fcn.0042df10
push esi
push ebx
mov dword [esp + 0x30], eax
mov edi, edx
call fcn.0042df70
jmp 0x4519b4
call fcn.00424d60
push esi
push ebx
mov dword [esp + 0x30], eax
mov edi, edx
call fcn.00424df0
cmp edi, edx
jb 0x4519c7
ja 0x4519c0
cmp dword [esp + 0x28], eax
jbe 0x4519c7
mov esi, 1
jmp 0x4519c9
xor esi, esi
cmp dword [ebp + 0xc], 0xdb
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
push ebx
je 0x4519f7
call fcn.0042deb0
jmp 0x4519fc
call fcn.00424d00
cmp edx, dword [ebp + 0x1c]
jb 0x451a1b
ja 0x451a08
cmp eax, dword [ebp + 0x18]
jb 0x451a1b
cmp edx, dword [ebp + 0x24]
ja 0x451a1b
jb 0x451a14
cmp eax, dword [ebp + 0x20]
ja 0x451a1b
mov esi, 1
jmp 0x451a1d
xor esi, esi
cmp dword [ebp + 0xc], 0x14d
jne 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
push ebx
je 0x451a4b
call fcn.00424dc0
jmp 0x451a50
call fcn.00424dc0
cmp edx, dword [ebp + 0x1c]
jb 0x451a6f
ja 0x451a5c
cmp eax, dword [ebp + 0x18]
jb 0x451a6f
cmp edx, dword [ebp + 0x24]
ja 0x451a6f
jb 0x451a68
cmp eax, dword [ebp + 0x20]
ja 0x451a6f
mov esi, 1
jmp 0x451a71
xor esi, esi
cmp dword [ebp + 0xc], 0x147
jne 0x4523a1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
push ebx
je 0x451a9f
call fcn.0042df70
jmp 0x451aa4
call fcn.00424df0
cmp edx, dword [ebp + 0x1c]
jb 0x451ac3
ja 0x451ab0
cmp eax, dword [ebp + 0x18]
jb 0x451ac3
cmp edx, dword [ebp + 0x24]
ja 0x451ac3
jb 0x451abc
cmp eax, dword [ebp + 0x20]
ja 0x451ac3
mov esi, 1
jmp 0x451ac5
xor esi, esi
cmp dword [ebp + 0xc], 0xdd
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
push esi
push ebx
call fcn.00424e50
mov esi, eax
mov eax, dword [ebp + 0x20]
push eax
lea ecx, [ebp + 0x24]
push ecx
push esi
call fcn.00403710
mov edx, dword [ebp + 0x14]
push eax
push esi
call edx
cmp dword [ebp + 0xc], 0xdf
mov esi, eax
jne 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
mov esi, 1
jmp 0x4523a1
mov ecx, dword [ebx]
push esi
push ecx
call fcn.00428de0
mov edx, dword [ebp + 0x20]
mov esi, eax
push edx
lea eax, [ebp + 0x24]
push eax
push esi
call fcn.00403710
mov ecx, dword [ebp + 0x14]
push eax
push esi
call ecx
cmp dword [ebp + 0xc], 0xe1
mov esi, eax
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
lea ebx, [edx - 0xe2]
test bl, 1
je 0x451b87
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x451b80
call fcn.0042e400
jmp 0x451ba1
call fcn.0042e400
jmp 0x451ba1
mov al, byte [esi + 4]
cmp al, 0xff
jne 0x451b93
mov eax, dword [esi - 4]
jmp 0x451b96
movzx eax, al
push eax
add esi, 5
push esi
push edi
call fcn.00523f50
mov edx, dword [edi + 8]
mov eax, dword [edi]
push 0x80
lea ecx, [esp + 0x44]
push ecx
push 0xa
push edx
add ebp, 0x14
push ebp
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], eax
call fcn.00547e00
mov esi, eax
neg esi
sbb esi, esi
add esi, 1
test bl, 2
je 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
cmp dword [esp + 0x1c0], 0
jne case.0x44f4ce.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f4ce.0
push ebp
push esi
call fcn.00428850
cmp dword [ebp + 0xc], 0x153
mov esi, eax
jne 0x4523a1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523a1
cmp dword [esp + 0x1c0], 0
jne case.0x44f4ce.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f4ce.0
push ebp
push esi
call fcn.004288d0
cmp dword [ebp + 0xc], 0x155
mov esi, eax
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
cmp dword [esp + 0x1c0], 0
jne case.0x44f4ce.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f4ce.0
push ebp
push esi
call fcn.004289c0
cmp dword [ebp + 0xc], 0x157
mov esi, eax
jne 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
cmp dword [esp + 0x1c0], 0
jne case.0x44f4ce.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f4ce.0
push ebp
push esi
call fcn.00428b40
cmp dword [ebp + 0xc], 0x159
mov esi, eax
jne 0x4523a1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523a1
cmp dword [esp + 0x1c0], 0
jne case.0x44f4ce.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f4ce.0
push ebp
push esi
call fcn.00428ac0
cmp dword [ebp + 0xc], 0x15b
mov esi, eax
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
cmp dword [esp + 0x1c0], 0
jne case.0x44f4ce.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f4ce.0
push ebp
push esi
call fcn.0042a7a0
cmp dword [ebp + 0xc], 0x15d
mov esi, eax
jne 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
cmp dword [esp + 0x1c0], 0
jne case.0x44f4ce.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f4ce.0
push ebp
push esi
call fcn.0042a910
cmp dword [ebp + 0xc], 0x15f
mov esi, eax
jne 0x4523a1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523a1
cmp dword [esp + 0x1c0], 0
jne case.0x44f4ce.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f4ce.0
push ebp
push esi
call fcn.00428eb0
cmp dword [ebp + 0xc], 0x16d
mov esi, eax
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
cmp dword [esp + 0x1c0], 0
jne case.0x44f4ce.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f4ce.0
push ebp
push esi
call fcn.0042aa60
cmp dword [ebp + 0xc], 0x161
mov esi, eax
jne 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
cmp dword [esp + 0x1c0], 0
jne case.0x44f4ce.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f4ce.0
push ebp
push esi
call fcn.0042abb0
cmp dword [ebp + 0xc], 0x163
mov esi, eax
jne 0x4523a1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523a1
cmp dword [esp + 0x1c0], 0
jne case.0x44f4ce.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f4ce.0
push ebp
push esi
call fcn.0042acc0
cmp dword [ebp + 0xc], 0x165
mov esi, eax
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
cmp dword [esp + 0x1c0], 0
jne case.0x44f4ce.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f4ce.0
push ebp
push esi
call fcn.0042add0
cmp dword [ebp + 0xc], 0x167
mov esi, eax
jne 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
cmp dword [esp + 0x1c0], 0
jne case.0x44f4ce.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f4ce.0
push ebp
push esi
call fcn.0042aee0
cmp dword [ebp + 0xc], 0x169
mov esi, eax
jne 0x4523a1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523a1
cmp dword [esp + 0x1c0], 0
jne case.0x44f4ce.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f4ce.0
push ebp
push esi
call fcn.0042aff0
cmp dword [ebp + 0xc], 0x16b
mov esi, eax
jne 0x4523a1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
lea ebx, [edx - 0xe6]
push edi
je 0x451f81
call fcn.0042bf80
jmp 0x451f86
call fcn.0042bf80
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x14]
push ecx
lea ecx, [ebp + edx*8 + 0x1c]
mov edx, dword [edi]
push ecx
mov ecx, dword [edi + 8]
mov eax, ebx
push edx
and eax, 3
mov edx, dword [eax*4 + 0x58ceec]
push ecx
call edx
test bl, 4
mov esi, eax
je 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x451fd3
call fcn.0042bf80
jmp 0x451fd8
call fcn.0042bf80
mov ecx, dword [ebp + 0x18]
cmp ecx, dword [edi]
mov edx, dword [ebp + 0x14]
lea eax, [ebp + edx*8 + 0x1c]
jg 0x452010
mov edi, dword [edi + 8]
add ecx, eax
sub edi, eax
cmp eax, ecx
je 0x452009
mov esi, dword [0x599db8]
movzx edx, byte [edi + eax]
mov dl, byte [edx + esi]
cmp dl, byte [eax]
jne 0x452010
add eax, 1
cmp eax, ecx
jne 0x451ff7
mov esi, 1
jmp 0x452012
xor esi, esi
cmp dword [ebp + 0xc], 0xef
jne 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
lea ebx, [edx - 0xf0]
push edi
je 0x452046
call fcn.0042bf80
jmp 0x45204b
call fcn.0042bf80
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
push edx
lea edx, [ebp + eax*4 + 0x1c]
mov eax, dword [edi]
push edx
mov edx, dword [edi + 8]
mov ecx, ebx
push eax
and ecx, 3
mov eax, dword [ecx*4 + 0x58cefc]
push edx
call eax
jmp 0x450e40
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x452084
call fcn.0042bf80
jmp 0x452089
call fcn.0042bf80
mov ecx, dword [ebp + 0x18]
cmp ecx, dword [edi]
mov edx, dword [ebp + 0x14]
lea eax, [ebp + edx*4 + 0x1c]
jg 0x4520c9
mov edi, dword [edi + 8]
add ecx, eax
sub edi, eax
cmp eax, ecx
je 0x4520c2
mov esi, dword [0x599db8]
jmp 0x4520b0
movzx edx, byte [edi + eax]
mov dl, byte [edx + esi]
cmp dl, byte [eax]
jne 0x4520c9
add eax, 1
cmp eax, ecx
jne 0x4520b0
mov esi, 1
jmp 0x4520cb
xor esi, esi
cmp dword [ebp + 0xc], 0xf9
jne 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
lea ebx, [edx - 0xfa]
push edi
je 0x4520ff
call fcn.0042bf80
jmp 0x452104
call fcn.0042bf80
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
push edx
lea edx, [ebp + eax*4 + 0x1c]
mov eax, dword [edi]
push edx
mov edx, dword [edi + 8]
mov ecx, ebx
push eax
and ecx, 3
mov eax, dword [ecx*4 + 0x58cf0c]
push edx
call eax
jmp 0x450e40
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x45213d
call fcn.0042bf80
jmp 0x452142
call fcn.0042bf80
mov ecx, dword [ebp + 0x18]
cmp ecx, dword [edi]
mov edx, dword [ebp + 0x14]
lea eax, [ebp + edx*4 + 0x1c]
jg 0x45217a
mov edi, dword [edi + 8]
add ecx, eax
sub edi, eax
cmp eax, ecx
je 0x452173
mov esi, dword [0x599db8]
movzx edx, byte [edi + eax]
mov dl, byte [edx + esi]
cmp dl, byte [eax]
jne 0x45217a
add eax, 1
cmp eax, ecx
jne 0x452161
mov esi, 1
jmp 0x45217c
xor esi, esi
cmp dword [ebp + 0xc], 0x103
jne 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
lea ebx, [edx - 0x104]
push edi
je 0x4521b0
call fcn.0042bf80
jmp 0x4521b5
call fcn.0042bf80
mov edx, dword [ebp + 0x18]
mov eax, dword [edi]
push edx
mov edx, dword [edi + 8]
add ebp, 0x1c
push ebp
mov ecx, ebx
push eax
and ecx, 3
mov eax, dword [ecx*4 + 0x58cf1c]
push edx
call eax
jmp 0x450e40
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x4521ea
call fcn.0042bf80
jmp 0x4521ef
call fcn.0042bf80
mov ecx, dword [ebp + 0x18]
cmp ecx, dword [edi]
lea eax, [ebp + 0x1c]
jg 0x452229
mov edi, dword [edi + 8]
add ecx, eax
sub edi, eax
cmp eax, ecx
je 0x452222
mov esi, dword [0x599db8]
lea ebx, [ebx]
movzx edx, byte [edi + eax]
mov dl, byte [edx + esi]
cmp dl, byte [eax]
jne 0x452229
add eax, 1
cmp eax, ecx
jne 0x452210
mov esi, 1
jmp 0x45222b
xor esi, esi
cmp dword [ebp + 0xc], 0x10d
jne 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
lea ebx, [edx - 0x10e]
push edi
je 0x45225f
call fcn.0042bf80
jmp 0x452264
call fcn.0042bf80
mov edx, dword [ebp + 0x18]
mov eax, dword [edi]
push edx
mov edx, dword [edi + 8]
add ebp, 0x1c
push ebp
mov ecx, ebx
push eax
and ecx, 3
mov eax, dword [ecx*4 + 0x58cf2c]
push edx
call eax
jmp 0x450e40
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x452299
call fcn.0042bf80
jmp 0x45229e
call fcn.0042bf80
mov ecx, dword [ebp + 0x18]
cmp ecx, dword [edi]
lea eax, [ebp + 0x1c]
jg 0x4522d9
mov edi, dword [edi + 8]
add ecx, eax
sub edi, eax
cmp eax, ecx
je 0x4522d2
mov esi, dword [0x599db8]
lea esp, [esp]
movzx edx, byte [edi + eax]
mov dl, byte [edx + esi]
cmp dl, byte [eax]
jne 0x4522d9
add eax, 1
cmp eax, ecx
jne 0x4522c0
mov esi, 1
jmp 0x4522db
xor esi, esi
cmp dword [ebp + 0xc], 0x117
jne 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
cmp dword [esp + 0x1b0], 0
push esi
lea ebx, [edx - 0x11e]
push edi
je 0x45230f
call fcn.0042bf80
jmp 0x452314
call fcn.0042bf80
mov edx, dword [ebp + 0x14]
mov eax, dword [edi]
push edx
mov edx, dword [edi + 8]
add ebp, 0x18
push ebp
mov ecx, ebx
push eax
and ecx, 3
mov eax, dword [ecx*4 + 0x58cf3c]
push edx
call eax
jmp 0x450e40
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x452349
call fcn.0042bf80
jmp 0x45234e
call fcn.0042bf80
mov ecx, dword [ebp + 0x14]
cmp ecx, dword [edi]
lea eax, [ebp + 0x18]
jg 0x452389
mov edi, dword [edi + 8]
add ecx, eax
sub edi, eax
cmp eax, ecx
je 0x452382
mov esi, dword [0x599db8]
lea esp, [esp]
movzx edx, byte [edi + eax]
mov dl, byte [edx + esi]
cmp dl, byte [eax]
jne 0x452389
add eax, 1
cmp eax, ecx
jne 0x452370
mov esi, 1
jmp 0x45238b
xor esi, esi
cmp dword [ebp + 0xc], 0x127
jne 0x4523a1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523a1
xor esi, esi
mov ecx, dword [esp + 0x1a0]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.005498cd
add esp, 0x194
ret 0x1c