Function at 0x44f4c0
Capabilities:
Check for software breakpoints

Disassembly:
sub esp, 0x194
mov eax, dword [0x596fb8]
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.0x44f50e.1
movzx eax, byte [edx + 0x452558]
jmp dword [eax*4 + 0x452400]
lea ebx, [edx - 2]
test bl, 8
mov dword [esp + 0x28], ebx
je 0x44f545
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x44f539
call fcn.00425170
mov ecx, dword [edi + 8]
mov esi, dword [edi]
jmp 0x44f557
call fcn.00425170
mov ecx, dword [edi + 8]
mov esi, dword [edi]
jmp 0x44f557
mov al, byte [esi + 4]
cmp al, 0xff
lea ecx, [esi + 5]
jne 0x44f554
mov esi, dword [esi - 4]
jmp 0x44f557
movzx esi, al
test bl, 1
je 0x44fdb9
test bl, 2
je 0x44f83f
test bl, 4
je 0x44f584
mov edx, dword [ebp + 0x14]
push edx
add ebp, 0x18
push ebp
push esi
push ecx
call fcn.00440c70
mov esi, eax
jmp 0x45038f
mov eax, dword [ebp + 0x14]
add ebp, 0x18
test eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], ebp
je 0x4500b4
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 0x44f5c0
cmp dword [esp + 0x10], 0
je 0x4500e1
mov cl, byte [ebp]
mov bl, byte [esi]
mov edx, dword [0x598ddc]
movzx eax, cl
cmp byte [eax + edx], bl
jne 0x44f5f1
sub dword [esp + 0x10], 1
add ebp, 1
add esi, 1
sub edi, 1
jmp 0x44f767
test cl, cl
jns 0x44f7c8
cmp dword [esp + 0x10], 2
jl 0x44f62c
mov dl, cl
and dl, 0xe0
cmp dl, 0xc0
jne 0x44f62c
movzx ecx, byte [ebp + 1]
and eax, 0x1f
and ecx, 0x3f
shl eax, 6
or ecx, eax
push ecx
call fcn.00422980
add ebp, 2
sub dword [esp + 0x10], 2
jmp 0x44f6b8
cmp dword [esp + 0x10], 3
jl 0x44f668
mov dl, cl
and dl, 0xf0
cmp dl, 0xe0
jne 0x44f668
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.00422980
add ebp, 3
sub dword [esp + 0x10], 3
jmp 0x44f6b8
cmp dword [esp + 0x10], 4
jl 0x44f6ae
and cl, 0xf8
cmp cl, 0xf0
jne 0x44f6ae
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.00422980
add ebp, 4
sub dword [esp + 0x10], 4
jmp 0x44f6b8
xor eax, eax
add ebp, 1
sub dword [esp + 0x10], 1
test bl, bl
jns 0x44f75a
cmp edi, 2
jl 0x44f6e6
mov cl, bl
and cl, 0xe0
cmp cl, 0xc0
jne 0x44f6e6
movzx ecx, byte [esi + 1]
and ebx, 0x1f
and ecx, 0x3f
shl ebx, 6
or ecx, ebx
add esi, 2
sub edi, 2
jmp 0x44f763
cmp edi, 3
jl 0x44f718
mov dl, bl
and dl, 0xf0
cmp dl, 0xe0
jne 0x44f718
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 0x44f763
cmp edi, 4
jl 0x44f756
mov cl, bl
and cl, 0xf8
cmp cl, 0xf0
jne 0x44f756
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 0x44f763
xor ecx, ecx
jmp 0x44f75d
movzx ecx, bl
add esi, 1
sub edi, 1
cmp eax, ecx
jne 0x44f7c8
test edi, edi
jne 0x44f5c0
mov al, byte [esi - 1]
cmp al, 0x61
jb 0x44f77a
cmp al, 0x7a
jbe 0x44f796
cmp al, 0x41
jb 0x44f782
cmp al, 0x5a
jbe 0x44f796
cmp al, 0x30
jb 0x44f78a
cmp al, 0x39
jbe 0x44f796
cmp al, 0x5f
je 0x44f796
test al, al
jns 0x4500b4
cmp dword [esp + 0x10], 0
je 0x4500b4
mov al, byte [ebp]
cmp al, 0x61
jb 0x44f7ac
cmp al, 0x7a
jbe 0x44f7c8
cmp al, 0x41
jb 0x44f7b4
cmp al, 0x5a
jbe 0x44f7c8
cmp al, 0x30
jb 0x44f7bc
cmp al, 0x39
jbe 0x44f7c8
cmp al, 0x5f
je 0x44f7c8
test al, al
jns 0x4500b4
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 0x44f7ee
cmp cl, 0x7a
jbe 0x44f80f
cmp cl, 0x41
jb 0x44f7f8
cmp cl, 0x5a
jbe 0x44f80f
cmp cl, 0x30
jb 0x44f802
cmp cl, 0x39
jbe 0x44f80f
cmp cl, 0x5f
je 0x44f80f
test cl, cl
jns 0x44f5a2
test esi, esi
je 0x44f5a2
mov al, byte [edx - 1]
cmp al, 0x61
jb 0x44f822
cmp al, 0x7a
jbe 0x44f7d6
cmp al, 0x41
jb 0x44f82a
cmp al, 0x5a
jbe 0x44f7d6
cmp al, 0x30
jb 0x44f832
cmp al, 0x39
jbe 0x44f7d6
cmp al, 0x5f
je 0x44f7d6
test al, al
js 0x44f7d6
jmp 0x44f5a2
mov eax, dword [ebp + 0x14]
add ebp, 0x18
test bl, 4
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], ebp
je 0x44fb09
test eax, eax
je 0x4500b4
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], esi
jmp 0x44f870
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 0x4500e1
mov cl, byte [ebp]
mov bl, byte [esi]
mov edx, dword [0x598dd8]
movzx eax, cl
cmp byte [eax + edx], bl
jne 0x44f8b5
sub dword [esp + 0x10], 1
add ebp, 1
add esi, 1
sub edi, 1
jmp 0x44fa2e
test cl, cl
jns 0x44fa8f
cmp dword [esp + 0x10], 2
jl 0x44f8f0
mov dl, cl
and dl, 0xe0
cmp dl, 0xc0
jne 0x44f8f0
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 0x44f97c
cmp dword [esp + 0x10], 3
jl 0x44f92c
mov dl, cl
and dl, 0xf0
cmp dl, 0xe0
jne 0x44f92c
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 0x44f97c
cmp dword [esp + 0x10], 4
jl 0x44f972
and cl, 0xf8
cmp cl, 0xf0
jne 0x44f972
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 0x44f97c
xor eax, eax
add ebp, 1
sub dword [esp + 0x10], 1
test bl, bl
jns 0x44fa21
cmp edi, 2
jl 0x44f9ad
mov cl, bl
and cl, 0xe0
cmp cl, 0xc0
jne 0x44f9ad
movzx edx, byte [esi + 1]
and ebx, 0x1f
shl ebx, 6
and edx, 0x3f
or ebx, edx
add esi, 2
sub edi, 2
jmp 0x44fa2a
cmp edi, 3
jl 0x44f9df
mov cl, bl
and cl, 0xf0
cmp cl, 0xe0
jne 0x44f9df
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 0x44fa2a
cmp edi, 4
jl 0x44fa1d
mov dl, bl
and dl, 0xf8
cmp dl, 0xf0
jne 0x44fa1d
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 0x44fa2a
xor ebx, ebx
jmp 0x44fa24
movzx ebx, bl
add esi, 1
sub edi, 1
cmp eax, ebx
jne 0x44fa8f
test edi, edi
jne 0x44f884
mov al, byte [esi - 1]
cmp al, 0x61
jb 0x44fa41
cmp al, 0x7a
jbe 0x44fa5d
cmp al, 0x41
jb 0x44fa49
cmp al, 0x5a
jbe 0x44fa5d
cmp al, 0x30
jb 0x44fa51
cmp al, 0x39
jbe 0x44fa5d
cmp al, 0x5f
je 0x44fa5d
test al, al
jns 0x4500b4
cmp dword [esp + 0x10], 0
je 0x4500b4
mov al, byte [ebp]
cmp al, 0x61
jb 0x44fa73
cmp al, 0x7a
jbe 0x44fa8f
cmp al, 0x41
jb 0x44fa7b
cmp al, 0x5a
jbe 0x44fa8f
cmp al, 0x30
jb 0x44fa83
cmp al, 0x39
jbe 0x44fa8f
cmp al, 0x5f
je 0x44fa8f
test al, al
jns 0x4500b4
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 0x44fab8
cmp cl, 0x7a
jbe 0x44fad9
cmp cl, 0x41
jb 0x44fac2
cmp cl, 0x5a
jbe 0x44fad9
cmp cl, 0x30
jb 0x44facc
cmp cl, 0x39
jbe 0x44fad9
cmp cl, 0x5f
je 0x44fad9
test cl, cl
jns 0x44f870
test esi, esi
je 0x44f870
mov al, byte [edx - 1]
cmp al, 0x61
jb 0x44faec
cmp al, 0x7a
jbe 0x44faa0
cmp al, 0x41
jb 0x44faf4
cmp al, 0x5a
jbe 0x44faa0
cmp al, 0x30
jb 0x44fafc
cmp al, 0x39
jbe 0x44faa0
cmp al, 0x5f
je 0x44faa0
test al, al
js 0x44faa0
jmp 0x44f870
test eax, eax
je 0x4500b4
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 0x4500e1
mov cl, byte [ebp]
mov bl, byte [esi]
mov edx, dword [0x598dd8]
movzx eax, cl
cmp byte [eax + edx], bl
jne 0x44fb65
sub dword [esp + 0x10], 1
add ebp, 1
add esi, 1
sub edi, 1
jmp 0x44fcde
test cl, cl
jns 0x44fd3f
cmp dword [esp + 0x10], 2
jl 0x44fba0
mov dl, cl
and dl, 0xe0
cmp dl, 0xc0
jne 0x44fba0
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 0x44fc2c
cmp dword [esp + 0x10], 3
jl 0x44fbdc
mov dl, cl
and dl, 0xf0
cmp dl, 0xe0
jne 0x44fbdc
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 0x44fc2c
cmp dword [esp + 0x10], 4
jl 0x44fc22
and cl, 0xf8
cmp cl, 0xf0
jne 0x44fc22
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 0x44fc2c
xor eax, eax
add ebp, 1
sub dword [esp + 0x10], 1
test bl, bl
jns 0x44fcd1
cmp edi, 2
jl 0x44fc5d
mov cl, bl
and cl, 0xe0
cmp cl, 0xc0
jne 0x44fc5d
movzx edx, byte [esi + 1]
and ebx, 0x1f
shl ebx, 6
and edx, 0x3f
or ebx, edx
add esi, 2
sub edi, 2
jmp 0x44fcda
cmp edi, 3
jl 0x44fc8f
mov cl, bl
and cl, 0xf0
cmp cl, 0xe0
jne 0x44fc8f
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 0x44fcda
cmp edi, 4
jl 0x44fccd
mov dl, bl
and dl, 0xf8
cmp dl, 0xf0
jne 0x44fccd
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 0x44fcda
xor ebx, ebx
jmp 0x44fcd4
movzx ebx, bl
add esi, 1
sub edi, 1
cmp eax, ebx
jne 0x44fd3f
test edi, edi
jne 0x44fb34
mov al, byte [esi - 1]
cmp al, 0x61
jb 0x44fcf1
cmp al, 0x7a
jbe 0x44fd0d
cmp al, 0x41
jb 0x44fcf9
cmp al, 0x5a
jbe 0x44fd0d
cmp al, 0x30
jb 0x44fd01
cmp al, 0x39
jbe 0x44fd0d
cmp al, 0x5f
je 0x44fd0d
test al, al
jns 0x4500b4
cmp dword [esp + 0x10], 0
je 0x4500b4
mov al, byte [ebp]
cmp al, 0x61
jb 0x44fd23
cmp al, 0x7a
jbe 0x44fd3f
cmp al, 0x41
jb 0x44fd2b
cmp al, 0x5a
jbe 0x44fd3f
cmp al, 0x30
jb 0x44fd33
cmp al, 0x39
jbe 0x44fd3f
cmp al, 0x5f
je 0x44fd3f
test al, al
jns 0x4500b4
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 0x44fd68
cmp cl, 0x7a
jbe 0x44fd89
cmp cl, 0x41
jb 0x44fd72
cmp cl, 0x5a
jbe 0x44fd89
cmp cl, 0x30
jb 0x44fd7c
cmp cl, 0x39
jbe 0x44fd89
cmp cl, 0x5f
je 0x44fd89
test cl, cl
jns 0x44fb20
test esi, esi
je 0x44fb20
mov al, byte [edx - 1]
cmp al, 0x61
jb 0x44fd9c
cmp al, 0x7a
jbe 0x44fd50
cmp al, 0x41
jb 0x44fda4
cmp al, 0x5a
jbe 0x44fd50
cmp al, 0x30
jb 0x44fdac
cmp al, 0x39
jbe 0x44fd50
cmp al, 0x5f
je 0x44fd50
test al, al
js 0x44fd50
jmp 0x44fb20
test bl, 2
je 0x4500be
test bl, 4
je 0x44fddd
mov eax, dword [ebp + 0x14]
push eax
add ebp, 0x18
push ebp
push esi
push ecx
call fcn.00522470
mov esi, eax
jmp 0x45038f
mov edi, dword [ebp + 0x14]
cmp edi, esi
lea eax, [ebp + 0x18]
mov dword [esp + 0x3c], eax
jle 0x44fdf2
xor esi, esi
jmp 0x45038f
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 0x4500b4
mov al, byte [esi + edi]
mov bl, byte [esi]
mov edx, dword [0x598ddc]
movzx ecx, al
cmp byte [ecx + edx], bl
jne 0x44fe78
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 0x44fe40
test al, al
jns 0x45008c
mov ecx, dword [esp + 0x10]
sub ecx, edi
cmp ecx, 2
jl 0x44feb7
mov dl, al
and dl, 0xe0
cmp dl, 0xc0
jne 0x44feb7
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.00422980
add edi, 1
jmp 0x44ff38
cmp ecx, 3
jl 0x44fef2
mov dl, al
and dl, 0xf0
cmp dl, 0xe0
jne 0x44fef2
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.00422980
add edi, 2
jmp 0x44ff38
cmp ecx, 4
jl 0x44ff36
and al, 0xf8
cmp al, 0xf0
jne 0x44ff36
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.00422980
add edi, 3
jmp 0x44ff38
xor eax, eax
test bl, bl
jns 0x450055
mov edx, dword [esp + 0x24]
cmp ebp, edx
ja 0x44ff86
mov cl, bl
and cl, 0xe0
cmp cl, 0xc0
jne 0x44ff86
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 0x450071
mov ecx, dword [esp + 0x14]
cmp ecx, edx
ja 0x44ffdd
mov dl, bl
and dl, 0xf0
cmp dl, 0xe0
jne 0x44ffdd
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 0x450071
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x24]
ja 0x45003e
mov dl, bl
and dl, 0xf8
cmp dl, 0xf0
jne 0x45003e
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 0x450071
add dword [esp + 0x1c], 1
mov edx, 1
xor ebx, ebx
add esi, 1
add ecx, edx
mov dword [esp + 0x14], ecx
jmp 0x450067
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 0x450091
mov eax, dword [esp + 0x10]
sub eax, edi
cmp eax, dword [esp + 0x18]
jge 0x44fe40
xor esi, esi
jmp 0x45038f
mov edx, 1
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x38]
je 0x4500e1
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 0x44fe20
mov esi, 1
jmp 0x45038f
mov edx, dword [ebp + 0x14]
add ebp, 0x18
test bl, 4
je 0x4500d9
push edx
push ebp
push esi
push ecx
call fcn.0041e360
mov esi, eax
jmp 0x45038f
cmp edx, esi
mov dword [esp + 0x34], ebp
jle 0x4500e8
xor esi, esi
jmp 0x45038f
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 0x45038d
mov al, byte [esi + edi]
mov bl, byte [esi]
mov ecx, dword [0x598dd8]
movzx edx, al
cmp byte [edx + ecx], bl
jne 0x450178
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 0x450140
test al, al
jns 0x450371
mov ecx, dword [esp + 0x10]
sub ecx, edi
cmp ecx, 2
jl 0x4501b7
mov dl, al
and dl, 0xe0
cmp dl, 0xc0
jne 0x4501b7
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 0x450238
cmp ecx, 3
jl 0x4501f2
mov dl, al
and dl, 0xf0
cmp dl, 0xe0
jne 0x4501f2
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 0x450238
cmp ecx, 4
jl 0x450236
and al, 0xf8
cmp al, 0xf0
jne 0x450236
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 0x450238
xor eax, eax
test bl, bl
mov edx, 1
jns 0x450342
mov ecx, dword [esp + 0x24]
cmp ebp, ecx
ja 0x45028b
mov dl, bl
and dl, 0xe0
cmp dl, 0xc0
jne 0x45028b
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 0x450359
cmp dword [esp + 0x1c], ecx
ja 0x4502dc
mov dl, bl
and dl, 0xf0
cmp dl, 0xe0
jne 0x4502dc
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 0x450359
cmp dword [esp + 0x18], ecx
ja 0x45033b
mov cl, bl
and cl, 0xf8
cmp cl, 0xf0
jne 0x45033b
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 0x450359
xor ecx, ecx
lea edx, [ecx + 1]
jmp 0x450345
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 0x450376
mov eax, dword [esp + 0x10]
sub eax, edi
cmp eax, dword [esp + 0x14]
jge 0x450140
xor esi, esi
jmp 0x45038f
mov edx, 1
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x38]
je 0x4500e1
add dword [esp + 0x20], edx
jmp 0x450113
mov esi, edx
test byte [esp + 0x28], 0x10
je 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
lea ebx, [edx - 0x22]
test bl, 2
mov dword [esp + 0x30], ebx
je 0x4503d8
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x4503cc
call fcn.00425170
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x4503eb
call fcn.00425170
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x4503eb
mov cl, byte [esi + 4]
cmp cl, 0xff
lea eax, [esi + 5]
jne 0x4503e8
mov esi, dword [esi - 4]
jmp 0x4503eb
movzx esi, cl
test bl, 1
je 0x450508
mov ecx, dword [ebp + 0x14]
test ecx, ecx
lea edx, [ebp + 0x18]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x34], edx
je 0x45054f
mov ebx, dword [0x598dd8]
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 0x450512
movzx edx, byte [edi]
mov dl, byte [edx + ebx]
cmp dl, byte [eax]
jne 0x450499
sub ecx, 1
lea edx, [ecx + esi]
add edi, 1
add eax, 1
test edx, edx
jne 0x450422
mov al, byte [eax - 1]
cmp al, 0x61
jb 0x45044f
cmp al, 0x7a
jbe 0x45046b
cmp al, 0x41
jb 0x450457
cmp al, 0x5a
jbe 0x45046b
cmp al, 0x30
jb 0x45045f
cmp al, 0x39
jbe 0x45046b
cmp al, 0x5f
je 0x45046b
test al, al
jns 0x45054f
test ecx, ecx
je 0x45054f
mov al, byte [edi]
cmp al, 0x61
jb 0x45047d
cmp al, 0x7a
jbe 0x450499
cmp al, 0x41
jb 0x450485
cmp al, 0x5a
jbe 0x450499
cmp al, 0x30
jb 0x45048d
cmp al, 0x39
jbe 0x450499
cmp al, 0x5f
je 0x450499
test al, al
jns 0x45054f
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 0x4504b7
cmp cl, 0x7a
jbe 0x4504d8
cmp cl, 0x41
jb 0x4504c1
cmp cl, 0x5a
jbe 0x4504d8
cmp cl, 0x30
jb 0x4504cb
cmp cl, 0x39
jbe 0x4504d8
cmp cl, 0x5f
je 0x4504d8
test cl, cl
jns 0x450418
test ebp, ebp
je 0x450418
mov al, byte [edi - 1]
cmp al, 0x61
jb 0x4504eb
cmp al, 0x7a
jbe 0x4504a3
cmp al, 0x41
jb 0x4504f3
cmp al, 0x5a
jbe 0x4504a3
cmp al, 0x30
jb 0x4504fb
cmp al, 0x39
jbe 0x4504a3
cmp al, 0x5f
je 0x4504a3
test al, al
js 0x4504a3
jmp 0x450418
mov edx, dword [ebp + 0x14]
add ebp, 0x18
cmp edx, esi
jle 0x450516
xor esi, esi
jmp 0x450554
sub eax, ebp
mov ecx, eax
mov edi, ecx
sub edi, edx
add edi, esi
mov esi, dword [0x598dd8]
lea ebx, [edx + ebp]
lea esp, [esp]
mov eax, ebp
cmp eax, ebx
jae 0x45054f
movzx edx, byte [eax + ecx]
mov dl, byte [edx + esi]
cmp dl, byte [eax]
jne 0x450546
add eax, 1
jmp 0x450532
cmp ecx, edi
je 0x450512
add ecx, 1
jmp 0x450530
mov esi, 1
test byte [esp + 0x30], 4
je 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
lea ebx, [edx - 0x2a]
test bl, 4
mov dword [esp + 0x28], ebx
je 0x45059d
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x450591
call fcn.00425170
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x4505b0
call fcn.00425170
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x4505b0
mov cl, byte [esi + 4]
cmp cl, 0xff
lea eax, [esi + 5]
jne 0x4505ad
mov esi, dword [esi - 4]
jmp 0x4505b0
movzx esi, cl
test bl, 1
je 0x450607
test bl, 2
je 0x4505f6
mov ebx, dword [ebp + 0x14]
cmp esi, ebx
mov edx, esi
jl 0x4505c5
mov edx, ebx
test edx, edx
lea edi, [ebp + 0x18]
je 0x4505e3
sub edi, eax
mov edi, edi
movzx ebp, byte [eax + edi]
movzx ecx, byte [eax]
sub ecx, ebp
jne 0x4505e7
add eax, 1
sub edx, 1
jne 0x4505d0
sub esi, ebx
mov ecx, esi
mov ebx, dword [esp + 0x28]
xor edx, edx
test ecx, ecx
sete dl
mov esi, edx
jmp 0x450635
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00422c70
jmp 0x45062c
test bl, 2
je 0x45061d
mov edx, dword [ebp + 0x14]
push edx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00414480
jmp 0x45062c
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.004229d0
mov esi, eax
neg esi
sbb esi, esi
add esi, 1
test bl, 8
je 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
add edx, 0xffffffc6
test dl, 1
mov dword [esp + 0x28], edx
je 0x45067c
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x450670
call fcn.00425170
mov edx, dword [edi + 8]
mov esi, dword [edi]
jmp 0x45068e
call fcn.00425170
mov edx, dword [edi + 8]
mov esi, dword [edi]
jmp 0x45068e
mov al, byte [esi + 4]
cmp al, 0xff
lea edx, [esi + 5]
jne 0x45068b
mov esi, dword [esi - 4]
jmp 0x45068e
movzx esi, al
test esi, esi
mov edi, dword [ebp + 0x14]
lea eax, [ebp + 0x18]
mov ecx, esi
je 0x4506c4
mov ebp, dword [0x598dd8]
mov esi, edx
sub esi, eax
test edi, edi
je 0x4506c4
movzx edx, byte [eax + esi]
movzx edx, byte [edx + ebp]
movzx ebx, byte [eax]
sub edx, ebx
jne 0x4506e8
sub ecx, 1
add eax, 1
sub edi, 1
test ecx, ecx
jne 0x4506a4
sub ecx, edi
xor eax, eax
test ecx, ecx
sete al
test byte [esp + 0x28], 2
mov esi, eax
je 0x4523e1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523e1
mov ecx, edx
jmp 0x4506c6
lea ebx, [edx - 0x3e]
test bl, 8
je 0x450718
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x45070c
call fcn.00425170
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x45072b
call fcn.00425170
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x45072b
mov cl, byte [esi + 4]
cmp cl, 0xff
lea eax, [esi + 5]
jne 0x450728
mov esi, dword [esi - 4]
jmp 0x45072b
movzx esi, cl
test bl, 1
je 0x450789
test bl, 2
je 0x450762
test bl, 4
je 0x45074e
mov edx, dword [ebp + 0x14]
push edx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00520890
jmp 0x4507da
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00520bd0
jmp 0x4507da
test bl, 4
je 0x450778
mov edx, dword [ebp + 0x14]
push edx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.005209d0
jmp 0x4507da
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00520ad0
jmp 0x4507da
test bl, 2
je 0x4507b5
test bl, 4
je 0x4507a4
mov edx, dword [ebp + 0x14]
push edx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00521ad0
jmp 0x4507da
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00521c10
jmp 0x4507da
test bl, 4
je 0x4507cb
mov edx, dword [ebp + 0x14]
push edx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00521b70
jmp 0x4507da
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00521bc0
test bl, 0x10
mov esi, eax
je 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
lea ebx, [edx - 0x5e]
test bl, 2
je 0x45081f
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x450813
call fcn.00425170
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450832
call fcn.00425170
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450832
mov cl, byte [esi + 4]
cmp cl, 0xff
lea eax, [esi + 5]
jne 0x45082f
mov esi, dword [esi - 4]
jmp 0x450832
movzx esi, cl
test bl, 1
je 0x450848
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00520930
jmp 0x450857
mov edx, dword [ebp + 0x14]
push edx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.00521b20
test bl, 4
mov esi, eax
je 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
lea ebx, [edx - 0x66]
test bl, 4
je 0x45089c
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x450890
call fcn.00425170
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x4508af
call fcn.00425170
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x4508af
mov cl, byte [esi + 4]
cmp cl, 0xff
lea eax, [esi + 5]
jne 0x4508ac
mov esi, dword [esi - 4]
jmp 0x4508af
movzx esi, cl
test bl, 1
je 0x4508db
test bl, 2
je 0x4508ca
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.0051ea80
jmp 0x450900
mov edx, dword [ebp + 0x14]
push edx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.0051f4f0
jmp 0x450900
test bl, 2
je 0x4508f1
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.0051ed10
jmp 0x450900
mov edx, dword [ebp + 0x14]
push edx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.0051f100
test bl, 8
mov esi, eax
je 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
lea ebx, [edx - 0x76]
test bl, 1
je 0x450945
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x450939
call fcn.00425170
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450958
call fcn.00425170
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450958
mov cl, byte [esi + 4]
cmp cl, 0xff
lea eax, [esi + 5]
jne 0x450955
mov esi, dword [esi - 4]
jmp 0x450958
movzx esi, cl
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push eax
call fcn.0051ebc0
mov esi, eax
test bl, 2
je 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
lea ebx, [edx - 0x8e]
test bl, 4
je 0x4509af
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x4509a3
call fcn.00425170
mov edx, dword [edi + 8]
mov esi, dword [edi]
jmp 0x4509c1
call fcn.00425170
mov edx, dword [edi + 8]
mov esi, dword [edi]
jmp 0x4509c1
mov al, byte [esi + 4]
cmp al, 0xff
lea edx, [esi + 5]
jne 0x4509be
mov esi, dword [esi - 4]
jmp 0x4509c1
movzx esi, al
test bl, 1
je 0x450a0c
test bl, 2
je 0x4509fb
mov ecx, dword [ebp + 0x14]
cmp ecx, esi
lea eax, [ebp + 0x18]
jle 0x4509d9
xor esi, esi
jmp 0x450a33
sub esi, eax
sub esi, ecx
lea edi, [eax + ecx]
add esi, edx
cmp eax, edi
je 0x4509f4
mov cl, byte [esi + eax]
cmp cl, byte [eax]
jne 0x4509d5
add eax, 1
cmp eax, edi
jne 0x4509e6
mov esi, 1
jmp 0x450a33
mov eax, dword [ebp + 0x14]
push eax
add ebp, 0x18
push ebp
push esi
push edx
call fcn.00423740
jmp 0x450a31
test bl, 2
je 0x450a22
mov ecx, dword [ebp + 0x14]
push ecx
add ebp, 0x18
push ebp
push esi
push edx
call fcn.0041e630
jmp 0x450a31
mov eax, dword [ebp + 0x14]
push eax
add ebp, 0x18
push ebp
push esi
push edx
call fcn.004234a0
mov esi, eax
test bl, 8
je 0x4523e1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523e1
add edx, 0xffffff62
test dl, 1
mov dword [esp + 0x28], edx
je 0x450a7d
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x450a71
call fcn.00425170
mov ebx, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450a8f
call fcn.00425170
mov ebx, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450a8f
mov al, byte [esi + 4]
cmp al, 0xff
lea ebx, [esi + 5]
jne 0x450a8c
mov esi, dword [esi - 4]
jmp 0x450a8f
movzx esi, al
mov ecx, dword [ebp + 0x14]
cmp ecx, esi
lea eax, [ebp + 0x18]
jg 0x450ac9
sub esi, eax
sub esi, ecx
lea edx, [eax + ecx]
add esi, ebx
cmp eax, edx
je 0x450ac2
mov edi, dword [0x598dd8]
lea esp, [esp]
movzx ecx, byte [esi + eax]
mov cl, byte [ecx + edi]
cmp cl, byte [eax]
jne 0x450ac9
add eax, 1
cmp eax, edx
jne 0x450ab0
mov esi, 1
jmp 0x450acb
xor esi, esi
test byte [esp + 0x28], 2
je 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
mov al, byte [esi + 4]
cmp al, 0xff
lea ebx, [edx - 0xa2]
lea ecx, [esi + 5]
jne 0x450af9
mov esi, dword [esi - 4]
jmp 0x450afc
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 + 0x58be7c]
push esi
push ecx
call eax
test bl, 4
mov esi, eax
je 0x4523e1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523e1
mov al, byte [esi + 4]
cmp al, 0xff
lea ebx, [edx - 0x176]
lea ecx, [esi + 5]
jne 0x450b42
mov esi, dword [esi - 4]
jmp 0x450b45
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 + 0x58be8c]
call ecx
test bl, 4
mov esi, eax
je 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
mov cl, byte [esi + 4]
cmp cl, 0xff
lea eax, [esi + 5]
jne 0x450b86
mov esi, dword [esi - 4]
jmp 0x450b89
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 0x450bc0
mov esi, edx
test esi, esi
mov ebx, dword [esp + 0x24]
mov edi, dword [ebp + eax*8 + 0x1c]
je 0x450c39
mov ecx, ebx
movzx edx, byte [ecx]
mov ecx, dword [0x598dd8]
movzx edx, byte [edx + ecx]
movzx ecx, byte [edi]
sub edx, ecx
jne 0x450c02
sub ebx, 1
sub esi, 1
je 0x450c35
movzx edx, byte [ebx]
mov ecx, dword [0x598dd8]
movzx edx, byte [edx + ecx]
movzx ecx, byte [edi - 1]
sub edi, 1
sub edx, ecx
je 0x450be2
test edx, edx
jge 0x450c4a
mov ecx, dword [esp + 0x20]
add eax, 0xffffffff
mov dword [esp + 0x18], eax
cmp ecx, dword [esp + 0x18]
jle 0x450ba5
xor esi, esi
cmp dword [esp + 0x10], 0xab
jne 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
sub edx, dword [ebp + eax*8 + 0x18]
test edx, edx
jle 0x450c53
cmp byte [ebx], 0x2e
je 0x450c5c
lea ecx, [eax + 1]
mov dword [esp + 0x20], ecx
jmp 0x450c11
add eax, 0xffffffff
mov dword [esp + 0x18], eax
jmp 0x450c11
mov esi, 1
jmp 0x450c19
mov cl, byte [esi + 4]
cmp cl, 0xff
lea eax, [esi + 5]
jne 0x450c73
mov esi, dword [esi - 4]
jmp 0x450c76
movzx esi, cl
add eax, esi
test esi, esi
mov ecx, esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], ecx
je 0x450ca6
sub eax, 1
cmp byte [eax], 0x2e
je 0x450c99
sub ecx, 1
jne 0x450c86
mov dword [esp + 0x20], ecx
jmp 0x450ca2
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 0x450d1a
test esi, esi
je 0x450d1a
movzx ecx, byte [edx]
mov esi, dword [0x598dd8]
movzx esi, byte [ecx + esi]
movzx ecx, byte [edx + ebx]
sub esi, ecx
jne 0x450d09
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
sub esi, 1
add edx, 1
sub edi, 1
jmp 0x450cd5
test esi, esi
jge 0x450d2b
mov ecx, dword [esp + 0x1c]
add eax, 0xffffffff
mov dword [esp + 0x14], eax
jmp 0x450d32
sub edi, esi
je 0x450d40
test edi, edi
jge 0x450d2b
add eax, 0xffffffff
mov dword [esp + 0x14], eax
jmp 0x450d32
lea ecx, [eax + 1]
mov dword [esp + 0x1c], ecx
cmp ecx, dword [esp + 0x14]
jle 0x450cb6
xor esi, esi
jmp 0x450d45
mov esi, 1
cmp dword [esp + 0x10], 0x17f
jne 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
lea ebx, [edx - 0x7a]
test bl, 4
je 0x450d8d
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x450d81
call fcn.00425170
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450da0
call fcn.00425170
mov eax, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450da0
mov cl, byte [esi + 4]
cmp cl, 0xff
lea eax, [esi + 5]
jne 0x450d9d
mov esi, dword [esi - 4]
jmp 0x450da0
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 + 0x58be9c]
call eax
test bl, 8
mov esi, eax
je 0x4523e1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
lea ebx, [edx - 0x128]
mov eax, 0x58beac
jne 0x450deb
mov eax, 0x58bebc
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 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
mov eax, fcn.0042f470
jne 0x450e2b
mov eax, fcn.00425340
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 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
lea ebx, [edx - 0x132]
mov eax, 0x58becc
jne 0x450e6d
mov eax, 0x58bedc
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 0x4523e1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
mov eax, fcn.0042fbc0
jne 0x450ead
mov eax, fcn.0042fbc0
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 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
lea ebx, [edx - 0x13c]
mov eax, 0x58beec
jne 0x450e6d
mov eax, 0x58befc
jmp 0x450e6d
cmp dword [esp + 0x1b0], 0
mov eax, fcn.00427610
jne 0x450f08
mov eax, fcn.00427610
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 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
lea ebx, [edx - 0x8a]
test bl, 1
je 0x450f5f
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x450f53
call fcn.00425170
mov ecx, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450f71
call fcn.00425170
mov ecx, dword [edi + 8]
mov esi, dword [edi]
jmp 0x450f71
mov al, byte [esi + 4]
cmp al, 0xff
lea ecx, [esi + 5]
jne 0x450f6e
mov esi, dword [esi - 4]
jmp 0x450f71
movzx esi, al
mov edx, dword [ebp + 0x14]
cmp edx, esi
lea eax, [ebp + 0x18]
jg 0x450fac
add edx, eax
sub ecx, eax
cmp eax, edx
mov esi, ecx
je 0x450fa2
mov edi, dword [0x598dd8]
jmp 0x450f90
movzx ecx, byte [esi + eax]
mov cl, byte [ecx + edi]
cmp cl, byte [eax]
jne 0x450fac
add eax, 1
cmp eax, edx
jne 0x450f90
mov esi, 1
jmp 0x450969
xor esi, esi
jmp 0x450969
cmp dword [esp + 0x1b0], 0
je 0x450fc8
xor eax, eax
cmp dword [esi], eax
sete al
mov esi, eax
jmp 0x450fd1
xor ecx, ecx
cmp dword [esi], ecx
sete cl
mov esi, ecx
cmp edx, 0xad
jne 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
je 0x451000
mov eax, dword [ebx]
push eax
call fcn.004309e0
jmp 0x451008
mov ecx, dword [ebx]
push ecx
call fcn.00427a00
cmp dword [ebp + 0xc], 0xaf
mov esi, eax
jne 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
je 0x45103a
mov eax, dword [ebx]
push eax
call fcn.004309e0
jmp 0x451042
mov ecx, dword [ebx]
push ecx
call fcn.004277a0
cmp dword [ebp + 0xc], 0xb1
mov esi, eax
jne 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
je 0x451074
mov eax, dword [ebx]
push eax
call fcn.00430be0
jmp 0x45107c
mov ecx, dword [ebx]
push ecx
call fcn.00427c00
cmp dword [ebp + 0xc], 0xb3
mov esi, eax
jne 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
je 0x4510ae
mov eax, dword [ebx]
push eax
call fcn.00430e40
jmp 0x4510b6
mov ecx, dword [ebx]
push ecx
call fcn.00427e60
cmp dword [ebp + 0xc], 0xb5
mov esi, eax
jne 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
je 0x4510e8
mov eax, dword [ebx]
push eax
call fcn.00431120
jmp 0x4510f0
mov ecx, dword [ebx]
push ecx
call fcn.004280e0
cmp dword [ebp + 0xc], 0xb7
mov esi, eax
jne 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
je 0x451122
mov eax, dword [ebx]
push eax
call fcn.004313a0
jmp 0x45112a
mov ecx, dword [ebx]
push ecx
call fcn.00428360
cmp dword [ebp + 0xc], 0xb9
mov esi, eax
jne 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
je 0x45115c
mov eax, dword [ebx]
push eax
call fcn.00431620
jmp 0x451164
mov ecx, dword [ebx]
push ecx
call fcn.00428660
cmp dword [ebp + 0xc], 0xbb
mov esi, eax
jne 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
je 0x4511ab
mov eax, esi
mov esi, dword [esi]
test esi, esi
je 0x45119b
mov eax, esi
mov esi, dword [esi]
test esi, esi
jne 0x451193
cmp byte [eax + 4], 0xff
jne 0x4511a6
mov eax, dword [eax - 8]
jmp 0x4511e6
mov eax, dword [eax - 4]
jmp 0x4511e6
mov ecx, dword [esi]
test ecx, ecx
jne 0x4511c5
cmp byte [esi + 4], 0xff
jne 0x4511be
mov esi, dword [esi - 8]
mov eax, esi
jmp 0x4511e6
mov esi, dword [esi - 4]
mov eax, esi
jmp 0x4511e6
mov eax, dword [ecx]
test eax, eax
je 0x4511d8
jmp 0x4511d0
mov ecx, eax
mov eax, dword [eax]
test eax, eax
jne 0x4511d0
cmp byte [ecx + 4], 0xff
jne 0x4511e3
mov eax, dword [ecx - 8]
jmp 0x4511e6
mov eax, dword [ecx - 4]
mov eax, dword [eax + 4]
mov ebp, dword [ebp + 0x14]
cmp eax, ebp
jb 0x4511f9
ja 0x4511f9
mov esi, 1
jmp 0x4511fb
xor esi, esi
cmp edx, 0xbd
jne 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
mov al, byte [esi + 4]
lea ebx, [edx - 0xbe]
je 0x451277
test bl, 1
je 0x4512c7
cmp al, 0xff
jne 0x45123a
mov eax, dword [esi - 4]
jmp 0x45123d
movzx eax, al
push eax
lea ecx, [esi + 5]
push ecx
call fcn.00526cb0
mov esi, dword [esi]
test esi, esi
mov edi, eax
je 0x451273
nop
mov al, byte [esi + 4]
cmp al, 0xff
jne 0x45125c
mov eax, dword [esi - 4]
jmp 0x45125f
movzx eax, al
push eax
lea edx, [esi + 5]
push edx
call fcn.00526cb0
mov esi, dword [esi]
test esi, esi
lea edi, [edi + eax + 1]
jne 0x451250
mov eax, edi
jmp 0x4512dd
test bl, 1
je 0x4512c7
cmp al, 0xff
jne 0x451285
mov eax, dword [esi - 4]
jmp 0x451288
movzx eax, al
push eax
lea eax, [esi + 5]
push eax
call fcn.00526cb0
mov esi, dword [esi]
test esi, esi
mov edi, eax
je 0x4512c3
lea ebx, [ebx]
mov al, byte [esi + 4]
cmp al, 0xff
jne 0x4512ac
mov eax, dword [esi - 4]
jmp 0x4512af
movzx eax, al
push eax
lea ecx, [esi + 5]
push ecx
call fcn.00526cb0
mov esi, dword [esi]
test esi, esi
lea edi, [edi + eax + 1]
jne 0x4512a0
mov eax, edi
jmp 0x4512dd
cmp al, 0xff
jne 0x4512d0
mov eax, dword [esi - 4]
jmp 0x4512d3
movzx eax, al
push eax
add esi, 5
push esi
call fcn.00526cb0
cmp eax, dword [ebp + 0x14]
jl 0x450fac
cmp eax, dword [ebp + 0x18]
jg 0x450fac
mov esi, 1
jmp 0x450969
mov esi, dword [esp + 0x1bc]
jmp 0x4523e1
mov esi, dword [esi]
xor eax, eax
cmp dword [esp + 0x1b0], eax
je 0x451321
test esi, esi
je 0x45132e
mov esi, dword [esi]
add eax, 1
test esi, esi
jne 0x451316
jmp 0x45132e
test esi, esi
je 0x45132e
mov esi, dword [esi]
add eax, 1
test esi, esi
jne 0x451325
cmp eax, dword [ebp + 0x14]
jl 0x45133f
cmp eax, dword [ebp + 0x18]
jg 0x45133f
mov esi, 1
jmp 0x451341
xor esi, esi
cmp edx, 0xc5
jne 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
lea ecx, [esp + 0x90]
push ecx
call fcn.00401210
cmp dword [esp + 0x1b0], 0
push esi
je 0x451382
lea edx, [esp + 0x94]
push edx
call fcn.0042ec50
jmp 0x45138f
lea eax, [esp + 0x94]
push eax
call fcn.0042ec50
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 0x4513c0
xor eax, eax
test esi, esi
sete al
mov esi, eax
lea ecx, [esp + 0x90]
push ecx
call fcn.00401230
jmp 0x4523e1
lea edx, [esp + 0x90]
push edx
call fcn.00401210
cmp dword [esp + 0x1b0], 0
push esi
je 0x4513f9
lea eax, [esp + 0x94]
push eax
call fcn.0042ec50
jmp 0x451406
lea ecx, [esp + 0x94]
push ecx
call fcn.0042ec50
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 0x451437
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
lea edx, [esp + 0x90]
push edx
call fcn.00401230
jmp 0x4523e1
lea eax, [esp + 0x90]
push eax
call fcn.00401210
cmp dword [esp + 0x1b0], 0
push esi
je 0x451470
lea ecx, [esp + 0x94]
push ecx
call fcn.0042ec50
jmp 0x45147d
lea edx, [esp + 0x94]
push edx
call fcn.0042ec50
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 0x4513b3
mov ebx, dword [ebx]
push esi
push ebx
call fcn.00455020
test eax, eax
je 0x4514be
mov edx, dword [eax]
mov eax, dword [edx + 8]
jmp 0x4514c0
xor eax, eax
cmp eax, dword [ebp + 0x14]
jb 0x4514d1
cmp eax, dword [ebp + 0x18]
ja 0x4514d1
mov esi, 1
jmp 0x4514d3
xor esi, esi
cmp dword [ebp + 0xc], 0x149
jne 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
mov ebx, dword [ebx]
push esi
push ebx
call fcn.00455020
test eax, eax
je 0x451504
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
jmp 0x451508
xor ecx, ecx
xor eax, eax
cmp eax, dword [ebp + 0x1c]
jb 0x451527
ja 0x451514
cmp ecx, dword [ebp + 0x18]
jb 0x451527
cmp eax, dword [ebp + 0x24]
ja 0x451527
jb 0x451520
cmp ecx, dword [ebp + 0x20]
ja 0x451527
mov esi, 1
jmp 0x451529
xor esi, esi
cmp dword [ebp + 0xc], 0x14b
jne 0x4523e1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523e1
mov eax, dword [ebx + 0x44]
add eax, dword [ebx + 0x2c]
cmp eax, dword [ebp + 0x14]
sbb esi, esi
neg esi
cmp edx, 0x14f
jne 0x4523e1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push ebp
push esi
je 0x45157e
call fcn.004323f0
jmp 0x451583
call fcn.00429860
cmp dword [ebp + 0xc], 0x151
mov esi, eax
jne 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
push esi
push ebx
call fcn.00424c90
cmp edx, dword [ebp + 0x1c]
jb 0x4515c6
ja 0x4515b3
cmp eax, dword [ebp + 0x18]
jb 0x4515c6
cmp edx, dword [ebp + 0x24]
ja 0x4515c6
jb 0x4515bf
cmp eax, dword [ebp + 0x20]
ja 0x4515c6
mov esi, 1
jmp 0x4515c8
xor esi, esi
cmp dword [ebp + 0xc], 0xc7
jne 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
mov al, byte [esi + 4]
cmp al, 0xff
jne 0x4515f3
mov ecx, dword [esi - 4]
lea esi, [ecx + esi + 5]
jmp 0x4515fa
movzx eax, al
lea esi, [eax + esi + 5]
mov eax, dword [esi]
mov esi, dword [esi + 4]
cmp esi, dword [ebp + 0x1c]
jb 0x45161e
ja 0x45160b
cmp eax, dword [ebp + 0x18]
jb 0x45161e
cmp esi, dword [ebp + 0x24]
ja 0x45161e
jb 0x451617
cmp eax, dword [ebp + 0x20]
ja 0x45161e
mov esi, 1
jmp 0x451620
xor esi, esi
cmp edx, 0xc9
jne 0x4523e1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
mov al, byte [esi + 4]
je 0x45166d
cmp al, 0xff
jne 0x45165c
mov eax, dword [esi - 4]
lea esi, [eax + esi + 5]
mov eax, dword [ebx]
mov eax, dword [eax + 0x364]
jmp 0x451689
movzx ecx, al
mov eax, dword [ebx]
mov eax, dword [eax + 0x364]
lea esi, [ecx + esi + 5]
jmp 0x451689
cmp al, 0xff
jne 0x45167a
mov ecx, dword [esi - 4]
lea esi, [ecx + esi + 5]
jmp 0x451681
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 0x4516af
ja 0x45169c
cmp ecx, dword [ebp + 0x18]
jb 0x4516af
cmp eax, dword [ebp + 0x24]
ja 0x4516af
jb 0x4516a8
cmp ecx, dword [ebp + 0x20]
ja 0x4516af
mov esi, 1
jmp 0x4516b1
xor esi, esi
cmp edx, 0xcb
jne 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
mov al, byte [esi + 4]
je 0x4516fe
cmp al, 0xff
jne 0x4516ed
mov eax, dword [esi - 4]
lea esi, [eax + esi + 5]
mov eax, dword [ebx]
mov eax, dword [eax + 0x35c]
jmp 0x45171a
movzx ecx, al
mov eax, dword [ebx]
mov eax, dword [eax + 0x35c]
lea esi, [ecx + esi + 5]
jmp 0x45171a
cmp al, 0xff
jne 0x45170b
mov ecx, dword [esi - 4]
lea esi, [ecx + esi + 5]
jmp 0x451712
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 0x451740
ja 0x45172d
cmp ecx, dword [ebp + 0x18]
jb 0x451740
cmp eax, dword [ebp + 0x24]
ja 0x451740
jb 0x451739
cmp ecx, dword [ebp + 0x20]
ja 0x451740
mov esi, 1
jmp 0x451742
xor esi, esi
cmp edx, 0xcd
jne 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
mov al, byte [esi + 4]
je 0x45178f
cmp al, 0xff
jne 0x45177e
mov eax, dword [esi - 4]
lea esi, [eax + esi + 5]
mov eax, dword [ebx]
mov eax, dword [eax + 0x36c]
jmp 0x4517ab
movzx ecx, al
mov eax, dword [ebx]
mov eax, dword [eax + 0x36c]
lea esi, [ecx + esi + 5]
jmp 0x4517ab
cmp al, 0xff
jne 0x45179c
mov ecx, dword [esi - 4]
lea esi, [ecx + esi + 5]
jmp 0x4517a3
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 0x4517d1
ja 0x4517be
cmp ecx, dword [ebp + 0x18]
jb 0x4517d1
cmp eax, dword [ebp + 0x24]
ja 0x4517d1
jb 0x4517ca
cmp ecx, dword [ebp + 0x20]
ja 0x4517d1
mov esi, 1
jmp 0x4517d3
xor esi, esi
cmp edx, 0xcf
jne 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
mov al, byte [esi + 4]
je 0x451820
cmp al, 0xff
jne 0x45180f
mov eax, dword [esi - 4]
lea esi, [eax + esi + 5]
mov eax, dword [ebx]
mov ecx, dword [eax + 0x374]
jmp 0x45183c
movzx ecx, al
mov eax, dword [ebx]
lea esi, [ecx + esi + 5]
mov ecx, dword [eax + 0x374]
jmp 0x45183c
cmp al, 0xff
jne 0x45182d
mov eax, dword [esi - 4]
lea esi, [eax + esi + 5]
jmp 0x451834
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 0x4523e1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
push ebx
je 0x45187c
call fcn.0042e670
jmp 0x451881
call fcn.00424cf0
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 0x4523e1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
push ebx
je 0x4518bf
call fcn.0042e730
jmp 0x4518c4
call fcn.00424db0
cmp edx, dword [ebp + 0x1c]
jb 0x4518e3
ja 0x4518d0
cmp eax, dword [ebp + 0x18]
jb 0x4518e3
cmp edx, dword [ebp + 0x24]
ja 0x4518e3
jb 0x4518dc
cmp eax, dword [ebp + 0x20]
ja 0x4518e3
mov esi, 1
jmp 0x4518e5
xor esi, esi
cmp dword [ebp + 0xc], 0xd5
jne 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
push ebx
je 0x451920
call fcn.0042e730
push esi
push ebx
mov edi, eax
mov dword [esp + 0x34], edx
call fcn.0042e7c0
jmp 0x451932
call fcn.00424db0
push esi
push ebx
mov edi, eax
mov dword [esp + 0x34], edx
call fcn.00424e10
cmp edi, eax
jne 0x451943
cmp dword [esp + 0x2c], edx
jne 0x451943
mov esi, 1
jmp 0x451945
xor esi, esi
cmp dword [ebp + 0xc], 0xd7
jne 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
push ebx
je 0x451980
call fcn.0042e730
push esi
push ebx
mov dword [esp + 0x30], eax
mov edi, edx
call fcn.0042e7c0
jmp 0x451992
call fcn.00424db0
push esi
push ebx
mov dword [esp + 0x30], eax
mov edi, edx
call fcn.00424e10
cmp edi, edx
jb 0x4519a5
ja 0x45199e
cmp dword [esp + 0x28], eax
jb 0x4519a5
mov esi, 1
jmp 0x4519a7
xor esi, esi
cmp dword [ebp + 0xc], 0xd9
jne 0x4523e1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
push ebx
je 0x4519e2
call fcn.0042e730
push esi
push ebx
mov dword [esp + 0x30], eax
mov edi, edx
call fcn.0042e7c0
jmp 0x4519f4
call fcn.00424db0
push esi
push ebx
mov dword [esp + 0x30], eax
mov edi, edx
call fcn.00424e10
cmp edi, edx
jb 0x451a07
ja 0x451a00
cmp dword [esp + 0x28], eax
jbe 0x451a07
mov esi, 1
jmp 0x451a09
xor esi, esi
cmp dword [ebp + 0xc], 0xdb
jne 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
push ebx
je 0x451a37
call fcn.0042e6d0
jmp 0x451a3c
call fcn.00424d50
cmp edx, dword [ebp + 0x1c]
jb 0x451a5b
ja 0x451a48
cmp eax, dword [ebp + 0x18]
jb 0x451a5b
cmp edx, dword [ebp + 0x24]
ja 0x451a5b
jb 0x451a54
cmp eax, dword [ebp + 0x20]
ja 0x451a5b
mov esi, 1
jmp 0x451a5d
xor esi, esi
cmp dword [ebp + 0xc], 0x14d
jne 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
push ebx
je 0x451a8b
call fcn.0042e790
jmp 0x451a90
call fcn.0042e790
cmp edx, dword [ebp + 0x1c]
jb 0x451aaf
ja 0x451a9c
cmp eax, dword [ebp + 0x18]
jb 0x451aaf
cmp edx, dword [ebp + 0x24]
ja 0x451aaf
jb 0x451aa8
cmp eax, dword [ebp + 0x20]
ja 0x451aaf
mov esi, 1
jmp 0x451ab1
xor esi, esi
cmp dword [ebp + 0xc], 0x147
jne 0x4523e1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
push ebx
je 0x451adf
call fcn.0042e7c0
jmp 0x451ae4
call fcn.00424e10
cmp edx, dword [ebp + 0x1c]
jb 0x451b03
ja 0x451af0
cmp eax, dword [ebp + 0x18]
jb 0x451b03
cmp edx, dword [ebp + 0x24]
ja 0x451b03
jb 0x451afc
cmp eax, dword [ebp + 0x20]
ja 0x451b03
mov esi, 1
jmp 0x451b05
xor esi, esi
cmp dword [ebp + 0xc], 0xdd
jne 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
push esi
push ebx
call fcn.00424e70
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 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
mov esi, 1
jmp 0x4523e1
mov ecx, dword [ebx]
push esi
push ecx
call fcn.00429630
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 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
lea ebx, [edx - 0xe2]
test bl, 1
je 0x451bc7
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x451bc0
call fcn.004250c0
jmp 0x451be1
call fcn.004250c0
jmp 0x451be1
mov al, byte [esi + 4]
cmp al, 0xff
jne 0x451bd3
mov eax, dword [esi - 4]
jmp 0x451bd6
movzx eax, al
push eax
add esi, 5
push esi
push edi
call fcn.00523c80
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.00547c80
mov esi, eax
neg esi
sbb esi, esi
add esi, 1
test bl, 2
je 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
cmp dword [esp + 0x1c0], 0
jne case.0x44f50e.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f50e.0
push ebp
push esi
call fcn.00429050
cmp dword [ebp + 0xc], 0x153
mov esi, eax
jne 0x4523e1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523e1
cmp dword [esp + 0x1c0], 0
jne case.0x44f50e.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f50e.0
push ebp
push esi
call fcn.004290d0
cmp dword [ebp + 0xc], 0x155
mov esi, eax
jne 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
cmp dword [esp + 0x1c0], 0
jne case.0x44f50e.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f50e.0
push ebp
push esi
call fcn.004291c0
cmp dword [ebp + 0xc], 0x157
mov esi, eax
jne 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
cmp dword [esp + 0x1c0], 0
jne case.0x44f50e.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f50e.0
push ebp
push esi
call fcn.00429340
cmp dword [ebp + 0xc], 0x159
mov esi, eax
jne 0x4523e1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523e1
cmp dword [esp + 0x1c0], 0
jne case.0x44f50e.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f50e.0
push ebp
push esi
call fcn.004292c0
cmp dword [ebp + 0xc], 0x15b
mov esi, eax
jne 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
cmp dword [esp + 0x1c0], 0
jne case.0x44f50e.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f50e.0
push ebp
push esi
call fcn.0042b070
cmp dword [ebp + 0xc], 0x15d
mov esi, eax
jne 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
cmp dword [esp + 0x1c0], 0
jne case.0x44f50e.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f50e.0
push ebp
push esi
call fcn.0042b1e0
cmp dword [ebp + 0xc], 0x15f
mov esi, eax
jne 0x4523e1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523e1
cmp dword [esp + 0x1c0], 0
jne case.0x44f50e.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f50e.0
push ebp
push esi
call fcn.00429780
cmp dword [ebp + 0xc], 0x16d
mov esi, eax
jne 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
cmp dword [esp + 0x1c0], 0
jne case.0x44f50e.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f50e.0
push ebp
push esi
call fcn.0042b330
cmp dword [ebp + 0xc], 0x161
mov esi, eax
jne 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
cmp dword [esp + 0x1c0], 0
jne case.0x44f50e.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f50e.0
push ebp
push esi
call fcn.0042b480
cmp dword [ebp + 0xc], 0x163
mov esi, eax
jne 0x4523e1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523e1
cmp dword [esp + 0x1c0], 0
jne case.0x44f50e.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f50e.0
push ebp
push esi
call fcn.0042b590
cmp dword [ebp + 0xc], 0x165
mov esi, eax
jne 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
cmp dword [esp + 0x1c0], 0
jne case.0x44f50e.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f50e.0
push ebp
push esi
call fcn.0042b6a0
cmp dword [ebp + 0xc], 0x167
mov esi, eax
jne 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
cmp dword [esp + 0x1c0], 0
jne case.0x44f50e.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f50e.0
push ebp
push esi
call fcn.0042b7b0
cmp dword [ebp + 0xc], 0x169
mov esi, eax
jne 0x4523e1
xor ecx, ecx
test esi, esi
sete cl
mov esi, ecx
jmp 0x4523e1
cmp dword [esp + 0x1c0], 0
jne case.0x44f50e.0
cmp dword [esp + 0x1bc], 0
jne case.0x44f50e.0
push ebp
push esi
call fcn.0042b8c0
cmp dword [ebp + 0xc], 0x16b
mov esi, eax
jne 0x4523e1
xor edx, edx
test esi, esi
sete dl
mov esi, edx
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
lea ebx, [edx - 0xe6]
push edi
je 0x451fc1
call fcn.00425170
jmp 0x451fc6
call fcn.00425170
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 + 0x58bf0c]
push ecx
call edx
test bl, 4
mov esi, eax
je 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x452013
call fcn.00425170
jmp 0x452018
call fcn.00425170
mov ecx, dword [ebp + 0x18]
cmp ecx, dword [edi]
mov edx, dword [ebp + 0x14]
lea eax, [ebp + edx*8 + 0x1c]
jg 0x452050
mov edi, dword [edi + 8]
add ecx, eax
sub edi, eax
cmp eax, ecx
je 0x452049
mov esi, dword [0x598dd8]
movzx edx, byte [edi + eax]
mov dl, byte [edx + esi]
cmp dl, byte [eax]
jne 0x452050
add eax, 1
cmp eax, ecx
jne 0x452037
mov esi, 1
jmp 0x452052
xor esi, esi
cmp dword [ebp + 0xc], 0xef
jne 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
lea ebx, [edx - 0xf0]
push edi
je 0x452086
call fcn.00425170
jmp 0x45208b
call fcn.00425170
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 + 0x58bf1c]
push edx
call eax
jmp 0x450e80
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x4520c4
call fcn.00425170
jmp 0x4520c9
call fcn.00425170
mov ecx, dword [ebp + 0x18]
cmp ecx, dword [edi]
mov edx, dword [ebp + 0x14]
lea eax, [ebp + edx*4 + 0x1c]
jg 0x452109
mov edi, dword [edi + 8]
add ecx, eax
sub edi, eax
cmp eax, ecx
je 0x452102
mov esi, dword [0x598dd8]
jmp 0x4520f0
movzx edx, byte [edi + eax]
mov dl, byte [edx + esi]
cmp dl, byte [eax]
jne 0x452109
add eax, 1
cmp eax, ecx
jne 0x4520f0
mov esi, 1
jmp 0x45210b
xor esi, esi
cmp dword [ebp + 0xc], 0xf9
jne 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
lea ebx, [edx - 0xfa]
push edi
je 0x45213f
call fcn.00425170
jmp 0x452144
call fcn.00425170
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 + 0x58bf2c]
push edx
call eax
jmp 0x450e80
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x45217d
call fcn.00425170
jmp 0x452182
call fcn.00425170
mov ecx, dword [ebp + 0x18]
cmp ecx, dword [edi]
mov edx, dword [ebp + 0x14]
lea eax, [ebp + edx*4 + 0x1c]
jg 0x4521ba
mov edi, dword [edi + 8]
add ecx, eax
sub edi, eax
cmp eax, ecx
je 0x4521b3
mov esi, dword [0x598dd8]
movzx edx, byte [edi + eax]
mov dl, byte [edx + esi]
cmp dl, byte [eax]
jne 0x4521ba
add eax, 1
cmp eax, ecx
jne 0x4521a1
mov esi, 1
jmp 0x4521bc
xor esi, esi
cmp dword [ebp + 0xc], 0x103
jne 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
lea ebx, [edx - 0x104]
push edi
je 0x4521f0
call fcn.00425170
jmp 0x4521f5
call fcn.00425170
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 + 0x58bf3c]
push edx
call eax
jmp 0x450e80
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x45222a
call fcn.00425170
jmp 0x45222f
call fcn.00425170
mov ecx, dword [ebp + 0x18]
cmp ecx, dword [edi]
lea eax, [ebp + 0x1c]
jg 0x452269
mov edi, dword [edi + 8]
add ecx, eax
sub edi, eax
cmp eax, ecx
je 0x452262
mov esi, dword [0x598dd8]
lea ebx, [ebx]
movzx edx, byte [edi + eax]
mov dl, byte [edx + esi]
cmp dl, byte [eax]
jne 0x452269
add eax, 1
cmp eax, ecx
jne 0x452250
mov esi, 1
jmp 0x45226b
xor esi, esi
cmp dword [ebp + 0xc], 0x10d
jne 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
lea ebx, [edx - 0x10e]
push edi
je 0x45229f
call fcn.00425170
jmp 0x4522a4
call fcn.00425170
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 + 0x58bf4c]
push edx
call eax
jmp 0x450e80
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x4522d9
call fcn.00425170
jmp 0x4522de
call fcn.00425170
mov ecx, dword [ebp + 0x18]
cmp ecx, dword [edi]
lea eax, [ebp + 0x1c]
jg 0x452319
mov edi, dword [edi + 8]
add ecx, eax
sub edi, eax
cmp eax, ecx
je 0x452312
mov esi, dword [0x598dd8]
lea esp, [esp]
movzx edx, byte [edi + eax]
mov dl, byte [edx + esi]
cmp dl, byte [eax]
jne 0x452319
add eax, 1
cmp eax, ecx
jne 0x452300
mov esi, 1
jmp 0x45231b
xor esi, esi
cmp dword [ebp + 0xc], 0x117
jne 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
cmp dword [esp + 0x1b0], 0
push esi
lea ebx, [edx - 0x11e]
push edi
je 0x45234f
call fcn.00425170
jmp 0x452354
call fcn.00425170
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 + 0x58bf5c]
push edx
call eax
jmp 0x450e80
cmp dword [esp + 0x1b0], 0
push esi
push edi
je 0x452389
call fcn.00425170
jmp 0x45238e
call fcn.00425170
mov ecx, dword [ebp + 0x14]
cmp ecx, dword [edi]
lea eax, [ebp + 0x18]
jg 0x4523c9
mov edi, dword [edi + 8]
add ecx, eax
sub edi, eax
cmp eax, ecx
je 0x4523c2
mov esi, dword [0x598dd8]
lea esp, [esp]
movzx edx, byte [edi + eax]
mov dl, byte [edx + esi]
cmp dl, byte [eax]
jne 0x4523c9
add eax, 1
cmp eax, ecx
jne 0x4523b0
mov esi, 1
jmp 0x4523cb
xor esi, esi
cmp dword [ebp + 0xc], 0x127
jne 0x4523e1
xor eax, eax
test esi, esi
sete al
mov esi, eax
jmp 0x4523e1
xor esi, esi
mov ecx, dword [esp + 0x1a0]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00549750
add esp, 0x194
ret 0x1c