Function at 0x52f110
Capabilities:
Check for software breakpoints

Disassembly:
push 0xffffffffffffffff
push 0x5927ea
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x174
push ebx
push ebp
push esi
push edi
mov esi, ecx
xor ebp, ebp
lea ecx, [esp + 0x194]
mov dword [esp + 0x18c], ebp
call fcn.0051c940
and eax, 0xff
add eax, 0xffffffef
cmp eax, 0xc7
ja case.0x52f161.40
xor ecx, ecx
mov cl, byte [eax + 0x5304d0]
jmp dword [ecx*4 + 0x530470]
lea ecx, [esp + 0x194]
call fcn.0051c940
push eax
mov ecx, esi
call fcn.0052de50
mov ecx, dword [esp + 0x198]
cmp ecx, ebp
je 0x52f192
xor eax, eax
mov ax, word [ecx + 0x6e]
jmp 0x530436
xor eax, eax
jmp 0x530436
lea ecx, [esp + 0x194]
call fcn.0051c940
push eax
mov ecx, esi
call fcn.0052de50
mov ecx, dword [esp + 0x198]
cmp ecx, ebp
je 0x52f1c0
xor eax, eax
mov ax, word [ecx + 0x6e]
jmp 0x52f1c2
xor eax, eax
push eax
mov ecx, esi
call fcn.0052de80
mov al, byte [esp + 0x19c]
test al, al
je case.0x52f161.40
mov al, byte [esp + 0x1a4]
test al, al
je case.0x52f161.40
push str.PatternFail_
lea ecx, [esp + 0x14]
call fcn.00411a30
mov edx, dword [esp + 0x1a0]
push 0x20
push ebp
mov bl, 1
push ebp
push edx
lea ecx, [esp + 0x38]
mov byte [esp + 0x19c], bl
call fcn.00411c20
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x190], 2
call fcn.00412320
mov eax, dword [esp + 0x28]
mov byte [esp + 0x18c], bl
cmp eax, ebp
je 0x52f23f
push eax
lea ecx, [esp + 0x2c]
call fcn.00411610
push ecx
mov ecx, dword [esp + 0x14]
mov eax, esp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x18], esp
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
cmp eax, ebp
je 0x52f25a
inc dword [eax]
push 0xbf
mov ecx, esi
call fcn.0052dea0
mov eax, dword [esp + 0x10]
mov byte [esp + 0x18c], 0
cmp eax, ebp
je case.0x52f161.40
push eax
lea ecx, [esp + 0x14]
call fcn.00411610
jmp case.0x52f161.40
lea ecx, [esp + 0x194]
call fcn.0051c940
push eax
mov ecx, esi
call fcn.0052de50
lea ecx, [esp + 0x194]
call fcn.0051c860
mov dl, byte [eax + 0x30]
mov ecx, esi
mov byte [esp + 0x10], dl
mov eax, dword [esp + 0x10]
push eax
call fcn.0052de50
lea ecx, [esp + 0x194]
xor edi, edi
call fcn.0051c860
mov cl, byte [eax + 0x30]
test cl, cl
jbe 0x52f31a
lea ecx, [esp + 0x194]
call fcn.0051c860
mov ecx, edi
and ecx, 0xff
mov dl, byte [eax + ecx]
mov ecx, esi
mov byte [esp + 0x10], dl
mov eax, dword [esp + 0x10]
push eax
call fcn.0052de50
lea ecx, [esp + 0x194]
inc edi
call fcn.0051c860
mov cl, byte [eax + 0x30]
mov byte [esp + 0x14], cl
mov edx, dword [esp + 0x14]
and edx, 0xff
cmp edi, edx
jl 0x52f2d1
lea eax, [esp + 0xb4]
lea ecx, [esp + 0x194]
push eax
call fcn.0051c8c0
mov cl, byte [eax + 0x30]
mov byte [esp + 0x18c], 3
mov byte [esp + 0x14], cl
mov edx, dword [esp + 0x14]
push edx
mov ecx, esi
call fcn.0052de50
lea ecx, [esp + 0xb4]
mov byte [esp + 0x18c], 0
call fcn.00520bd0
lea eax, [esp + 0x4c]
lea ecx, [esp + 0x194]
push eax
xor edi, edi
call fcn.0051c8c0
mov cl, byte [eax + 0x30]
test cl, cl
lea ecx, [esp + 0x4c]
seta bl
call fcn.00520bd0
test bl, bl
je 0x52f409
lea ecx, [esp + 0x11c]
push ecx
lea ecx, [esp + 0x198]
call fcn.0051c8c0
mov edx, edi
mov byte [esp + 0x18c], 4
and edx, 0xff
mov al, byte [edx + eax]
mov byte [esp + 0x14], al
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, esi
call fcn.0052de50
lea ecx, [esp + 0x11c]
mov byte [esp + 0x18c], 0
call fcn.00520bd0
lea edx, [esp + 0x4c]
lea ecx, [esp + 0x194]
push edx
inc edi
call fcn.0051c8c0
mov al, byte [eax + 0x30]
mov byte [esp + 0x10], al
mov ecx, dword [esp + 0x10]
and ecx, 0xff
cmp edi, ecx
lea ecx, [esp + 0x4c]
setl bl
call fcn.00520bd0
test bl, bl
jne 0x52f389
mov al, byte [esp + 0x19c]
test al, al
je case.0x52f161.40
mov al, byte [esp + 0x1a4]
test al, al
je case.0x52f161.40
push str.PatternFail_
lea ecx, [esp + 0x14]
call fcn.00411a30
mov edx, dword [esp + 0x1a0]
push 0x20
push ebp
mov bl, 5
push ebp
push edx
lea ecx, [esp + 0x2c]
mov byte [esp + 0x19c], bl
call fcn.00411c20
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x190], 6
call fcn.00412320
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x18c], bl
cmp eax, ebp
je 0x52f47e
push eax
lea ecx, [esp + 0x20]
call fcn.00411610
push ecx
mov ecx, dword [esp + 0x14]
mov eax, esp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x18], esp
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
cmp eax, ebp
je 0x52f499
inc dword [eax]
push 0xbf
mov ecx, esi
call fcn.0052dea0
mov eax, dword [esp + 0x10]
mov byte [esp + 0x18c], 0
cmp eax, ebp
je case.0x52f161.40
push eax
lea ecx, [esp + 0x14]
call fcn.00411610
jmp case.0x52f161.40
lea ecx, [esp + 0x194]
call fcn.0051c940
push eax
mov ecx, esi
call fcn.0052de50
lea ecx, [esp + 0x194]
call fcn.0051c860
mov dl, byte [eax + 0x30]
mov ecx, esi
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0x14]
push eax
call fcn.0052de50
lea ecx, [esp + 0x194]
xor edi, edi
call fcn.0051c860
mov cl, byte [eax + 0x30]
test cl, cl
jbe 0x52f559
lea ecx, [esp + 0x194]
call fcn.0051c860
mov ecx, edi
and ecx, 0xff
mov dl, byte [eax + ecx]
mov ecx, esi
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0x14]
push eax
call fcn.0052de50
lea ecx, [esp + 0x194]
inc edi
call fcn.0051c860
mov cl, byte [eax + 0x30]
mov byte [esp + 0x10], cl
mov edx, dword [esp + 0x10]
and edx, 0xff
cmp edi, edx
jl 0x52f510
lea eax, [esp + 0xe8]
lea ecx, [esp + 0x194]
push eax
call fcn.0051c8c0
mov cl, byte [eax + 0x30]
mov byte [esp + 0x18c], 7
mov byte [esp + 0x14], cl
mov edx, dword [esp + 0x14]
push edx
mov ecx, esi
call fcn.0052de50
lea ecx, [esp + 0xe8]
mov byte [esp + 0x18c], 0
call fcn.00520bd0
lea eax, [esp + 0x80]
lea ecx, [esp + 0x194]
push eax
xor edi, edi
call fcn.0051c8c0
mov cl, byte [eax + 0x30]
test cl, cl
lea ecx, [esp + 0x80]
seta bl
call fcn.00520bd0
test bl, bl
je 0x52f658
lea ecx, [esp + 0x150]
push ecx
lea ecx, [esp + 0x198]
call fcn.0051c8c0
mov edx, edi
mov byte [esp + 0x18c], 8
and edx, 0xff
mov al, byte [edx + eax]
mov byte [esp + 0x14], al
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, esi
call fcn.0052de50
lea ecx, [esp + 0x150]
mov byte [esp + 0x18c], 0
call fcn.00520bd0
lea edx, [esp + 0x80]
lea ecx, [esp + 0x194]
push edx
inc edi
call fcn.0051c8c0
mov al, byte [eax + 0x30]
mov byte [esp + 0x10], al
mov ecx, dword [esp + 0x10]
and ecx, 0xff
cmp edi, ecx
lea ecx, [esp + 0x80]
setl bl
call fcn.00520bd0
test bl, bl
jne 0x52f5ce
lea ecx, [esp + 0x194]
call fcn.0051c980
push eax
mov ecx, esi
call fcn.0052de80
lea ecx, [esp + 0x194]
call fcn.0051cb70
push eax
mov ecx, esi
call fcn.0052de80
mov al, byte [esp + 0x19c]
test al, al
je case.0x52f161.40
mov al, byte [esp + 0x1a4]
test al, al
je case.0x52f161.40
push str.PatternFail_
lea ecx, [esp + 0x14]
call fcn.00411a30
mov edx, dword [esp + 0x1a0]
push 0x20
push ebp
mov bl, 9
push ebp
push edx
lea ecx, [esp + 0x30]
mov byte [esp + 0x19c], bl
call fcn.00411c20
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x190], 0xa
call fcn.00412320
mov eax, dword [esp + 0x20]
mov byte [esp + 0x18c], bl
cmp eax, ebp
je 0x52f6f5
push eax
lea ecx, [esp + 0x24]
call fcn.00411610
push ecx
mov ecx, dword [esp + 0x14]
mov eax, esp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x18], esp
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
cmp eax, ebp
je 0x52f710
inc dword [eax]
push 0xbf
mov ecx, esi
call fcn.0052dea0
mov eax, dword [esp + 0x10]
mov byte [esp + 0x18c], 0
cmp eax, ebp
je case.0x52f161.40
push eax
lea ecx, [esp + 0x14]
call fcn.00411610
jmp case.0x52f161.40
lea ecx, [esp + 0x194]
call fcn.0051c940
push eax
mov ecx, esi
call fcn.0052de50
mov bl, byte [esp + 0x19c]
test bl, bl
je 0x52f7dd
lea ecx, [esp + 0x194]
call fcn.0051c860
mov dl, byte [eax + 0x30]
mov ecx, esi
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0x14]
push eax
call fcn.0052de50
lea ecx, [esp + 0x194]
xor edi, edi
call fcn.0051c860
mov cl, byte [eax + 0x30]
test cl, cl
jbe 0x52f7e5
lea ecx, [esp + 0x194]
call fcn.0051c860
mov ecx, edi
and ecx, 0xff
mov dl, byte [eax + ecx]
mov ecx, esi
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0x14]
push eax
call fcn.0052de50
lea ecx, [esp + 0x194]
inc edi
call fcn.0051c860
mov cl, byte [eax + 0x30]
mov byte [esp + 0x10], cl
mov edx, dword [esp + 0x10]
and edx, 0xff
cmp edi, edx
jl 0x52f792
jmp 0x52f7e5
push ebp
mov ecx, esi
call fcn.0052de50
mov ecx, dword [esp + 0x198]
cmp ecx, ebp
je 0x52f7f8
xor eax, eax
mov ax, word [ecx + 0x6a]
jmp 0x52f7fa
xor eax, eax
push eax
mov ecx, esi
call fcn.0052de80
lea ecx, [esp + 0x194]
call fcn.0051c980
push eax
mov ecx, esi
call fcn.0052de80
mov ecx, dword [esp + 0x198]
cmp ecx, ebp
je 0x52f829
xor eax, eax
mov ax, word [ecx + 0x6e]
jmp 0x52f82b
xor eax, eax
push eax
mov ecx, esi
call fcn.0052de80
lea ecx, [esp + 0x194]
call fcn.0051cb70
push eax
mov ecx, esi
call fcn.0052de80
test bl, bl
je case.0x52f161.40
mov al, byte [esp + 0x1a4]
test al, al
je case.0x52f161.40
push str.PatternFail_
lea ecx, [esp + 0x14]
call fcn.00411a30
mov eax, dword [esp + 0x1a0]
push 0x20
push ebp
mov bl, 0xb
push ebp
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x19c], bl
call fcn.00411c20
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x190], 0xc
call fcn.00412320
mov eax, dword [esp + 0x38]
mov byte [esp + 0x18c], bl
cmp eax, ebp
je 0x52f8b5
push eax
lea ecx, [esp + 0x3c]
call fcn.00411610
push ecx
mov ecx, dword [esp + 0x14]
mov eax, esp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x18], esp
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
cmp eax, ebp
je 0x52f8d0
inc dword [eax]
push 0xbf
mov ecx, esi
call fcn.0052dea0
mov eax, dword [esp + 0x10]
mov byte [esp + 0x18c], 0
cmp eax, ebp
je case.0x52f161.40
push eax
lea ecx, [esp + 0x14]
call fcn.00411610
jmp case.0x52f161.40
lea ecx, [esp + 0x194]
call fcn.0051c940
push eax
mov ecx, esi
call fcn.0052de50
lea ecx, [esp + 0x194]
call fcn.0051c860
sub esp, 0x34
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00520be0
lea ecx, [esi + 0x40]
call fcn.00521300
push eax
mov ecx, esi
call fcn.0052de50
mov ecx, dword [esp + 0x198]
cmp ecx, ebp
je 0x530310
xor eax, eax
mov ax, word [ecx + 0x6a]
mov ecx, esi
push eax
call fcn.0052de80
jmp 0x53042a
lea ecx, [esp + 0x194]
call fcn.0051c940
push eax
mov ecx, esi
call fcn.0052de50
push ebp
mov ecx, esi
call fcn.0052de50
push ebp
mov ecx, esi
call fcn.0052de80
jmp 0x53042a
push 0xb1
mov ecx, esi
call fcn.0052de50
mov bl, byte [esp + 0x19c]
test bl, bl
je 0x52fa1f
lea ecx, [esp + 0x194]
call fcn.0051c860
mov dl, byte [eax + 0x30]
mov ecx, esi
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0x14]
push eax
call fcn.0052de50
lea ecx, [esp + 0x194]
xor edi, edi
call fcn.0051c860
mov cl, byte [eax + 0x30]
test cl, cl
jbe 0x52fa27
lea ecx, [esp + 0x194]
call fcn.0051c860
mov ecx, edi
and ecx, 0xff
mov dl, byte [eax + ecx]
mov ecx, esi
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0x14]
push eax
call fcn.0052de50
lea ecx, [esp + 0x194]
inc edi
call fcn.0051c860
mov cl, byte [eax + 0x30]
mov byte [esp + 0x10], cl
mov edx, dword [esp + 0x10]
and edx, 0xff
cmp edi, edx
jl 0x52f9d4
jmp 0x52fa27
push ebp
mov ecx, esi
call fcn.0052de50
mov ecx, dword [esp + 0x198]
cmp ecx, ebp
je 0x52fa3a
xor eax, eax
mov ax, word [ecx + 0x6a]
jmp 0x52fa3c
xor eax, eax
push eax
mov ecx, esi
call fcn.0052de80
lea ecx, [esp + 0x194]
call fcn.0051c980
push eax
mov ecx, esi
call fcn.0052de80
lea ecx, [esp + 0x194]
call fcn.0051cb70
push eax
mov ecx, esi
call fcn.0052de80
push 0xb9
mov ecx, esi
call fcn.0052de50
mov ecx, dword [esp + 0x198]
cmp ecx, ebp
je 0x52fa8b
xor eax, eax
mov ax, word [ecx + 0x6e]
jmp 0x52fa8d
xor eax, eax
push eax
mov ecx, esi
call fcn.0052de80
lea ecx, [esp + 0x194]
call fcn.0051c940
cmp al, 0x1d
jne 0x52faac
push 0xcb
jmp 0x52fab1
push 0xda
mov ecx, esi
call fcn.0052de50
test bl, bl
je case.0x52f161.40
mov al, byte [esp + 0x1a4]
test al, al
je case.0x52f161.40
push str.PatternFail_
lea ecx, [esp + 0x14]
call fcn.00411a30
mov eax, dword [esp + 0x1a0]
push 0x20
push ebp
mov bl, 0xd
push ebp
push eax
lea ecx, [esp + 0x44]
mov byte [esp + 0x19c], bl
call fcn.00411c20
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x190], 0xe
call fcn.00412320
mov eax, dword [esp + 0x34]
mov byte [esp + 0x18c], bl
cmp eax, ebp
je 0x52fb26
push eax
lea ecx, [esp + 0x38]
call fcn.00411610
push ecx
mov ecx, dword [esp + 0x14]
mov eax, esp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x18], esp
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
cmp eax, ebp
je 0x52fb41
inc dword [eax]
push 0xbf
mov ecx, esi
call fcn.0052dea0
mov eax, dword [esp + 0x10]
mov byte [esp + 0x18c], 0
cmp eax, ebp
je case.0x52f161.40
push eax
lea ecx, [esp + 0x14]
call fcn.00411610
jmp case.0x52f161.40
push 0xb0
mov ecx, esi
call fcn.0052de50
mov bl, byte [esp + 0x19c]
test bl, bl
je 0x52fc06
lea ecx, [esp + 0x194]
call fcn.0051c860
mov dl, byte [eax + 0x30]
mov ecx, esi
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0x14]
push eax
call fcn.0052de50
lea ecx, [esp + 0x194]
xor edi, edi
call fcn.0051c860
mov cl, byte [eax + 0x30]
test cl, cl
jbe 0x52fc0e
lea ecx, [esp + 0x194]
call fcn.0051c860
mov ecx, edi
and ecx, 0xff
mov dl, byte [eax + ecx]
mov ecx, esi
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0x14]
push eax
call fcn.0052de50
lea ecx, [esp + 0x194]
inc edi
call fcn.0051c860
mov cl, byte [eax + 0x30]
mov byte [esp + 0x10], cl
mov edx, dword [esp + 0x10]
and edx, 0xff
cmp edi, edx
jl 0x52fbbb
jmp 0x52fc0e
push ebp
mov ecx, esi
call fcn.0052de50
mov ecx, dword [esp + 0x198]
cmp ecx, ebp
je 0x52fc21
xor eax, eax
mov ax, word [ecx + 0x6a]
jmp 0x52fc23
xor eax, eax
push eax
mov ecx, esi
call fcn.0052de80
lea ecx, [esp + 0x194]
call fcn.0051c980
push eax
mov ecx, esi
call fcn.0052de80
push 0xb9
mov ecx, esi
call fcn.0052de50
mov ecx, dword [esp + 0x198]
cmp ecx, ebp
je 0x52fc5e
xor eax, eax
mov ax, word [ecx + 0x6e]
jmp 0x52fc60
xor eax, eax
push eax
mov ecx, esi
call fcn.0052de80
lea ecx, [esp + 0x194]
call fcn.0051c940
cmp al, 0x1a
jne 0x52fc7f
push 0xcb
jmp 0x52fc84
push 0xda
mov ecx, esi
call fcn.0052de50
test bl, bl
je case.0x52f161.40
mov al, byte [esp + 0x1a4]
test al, al
je case.0x52f161.40
push str.PatternFail_
lea ecx, [esp + 0x14]
call fcn.00411a30
mov eax, dword [esp + 0x1a0]
push 0x20
push ebp
mov bl, 0xf
push ebp
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x19c], bl
call fcn.00411c20
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x190], 0x10
call fcn.00412320
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x18c], bl
cmp eax, ebp
je 0x52fcf9
push eax
lea ecx, [esp + 0x30]
call fcn.00411610
push ecx
mov ecx, dword [esp + 0x14]
mov eax, esp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x18], esp
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
cmp eax, ebp
je 0x52fd14
inc dword [eax]
push 0xbf
mov ecx, esi
call fcn.0052dea0
mov eax, dword [esp + 0x10]
mov byte [esp + 0x18c], 0
cmp eax, ebp
je case.0x52f161.40
push eax
lea ecx, [esp + 0x14]
call fcn.00411610
jmp case.0x52f161.40
mov al, byte [esp + 0x19c]
test al, al
jne case.0x52f161.40
lea ecx, [esp + 0x194]
call fcn.0051c940
push eax
mov ecx, esi
call fcn.0052de50
mov ecx, dword [esp + 0x198]
cmp ecx, ebp
je 0x52f192
xor eax, eax
mov ax, word [ecx + 0x6a]
jmp 0x530436
mov al, byte [esp + 0x19c]
test al, al
jne case.0x52f161.40
lea ecx, [esp + 0x194]
call fcn.0051c940
push eax
mov ecx, esi
call fcn.0052de50
mov ecx, dword [esp + 0x198]
cmp ecx, ebp
je 0x52fdb6
xor eax, eax
mov ax, word [ecx + 0x6a]
jmp 0x52fdb8
xor eax, eax
push eax
mov ecx, esi
call fcn.0052de80
lea ecx, [esp + 0x194]
call fcn.0051c980
push eax
mov ecx, esi
call fcn.0052de80
mov ecx, dword [esp + 0x198]
cmp ecx, ebp
je 0x52fde7
xor eax, eax
mov ax, word [ecx + 0x6e]
jmp 0x52fde9
xor eax, eax
push eax
mov ecx, esi
call fcn.0052de80
lea ecx, [esp + 0x194]
call fcn.0051cb70
push eax
mov ecx, esi
call fcn.0052de80
lea ecx, [esp + 0x194]
call fcn.0051c940
cmp al, 0xcc
jne case.0x52f161.40
lea ecx, [esp + 0x194]
call fcn.0051cba0
jmp 0x530436
lea ecx, [esp + 0x194]
call fcn.0051c940
push eax
mov ecx, esi
call fcn.0052de50
mov bl, byte [esp + 0x19c]
test bl, bl
je 0x52fec8
lea ecx, [esp + 0x194]
call fcn.0051c860
mov dl, byte [eax + 0x30]
mov ecx, esi
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0x14]
push eax
call fcn.0052de50
lea ecx, [esp + 0x194]
xor edi, edi
call fcn.0051c860
mov cl, byte [eax + 0x30]
test cl, cl
jbe 0x52fed0
lea ecx, [esp + 0x194]
call fcn.0051c860
mov ecx, edi
and ecx, 0xff
mov dl, byte [eax + ecx]
mov ecx, esi
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0x14]
push eax
call fcn.0052de50
lea ecx, [esp + 0x194]
inc edi
call fcn.0051c860
mov cl, byte [eax + 0x30]
mov byte [esp + 0x10], cl
mov edx, dword [esp + 0x10]
and edx, 0xff
cmp edi, edx
jl 0x52fe7d
jmp 0x52fed0
push ebp
mov ecx, esi
call fcn.0052de50
mov ecx, dword [esp + 0x198]
cmp ecx, ebp
je 0x52fee3
xor eax, eax
mov ax, word [ecx + 0x6a]
jmp 0x52fee5
xor eax, eax
push eax
mov ecx, esi
call fcn.0052de80
lea ecx, [esp + 0x194]
call fcn.0051c980
push eax
mov ecx, esi
call fcn.0052de80
test bl, bl
je case.0x52f161.40
mov al, byte [esp + 0x1a4]
test al, al
je case.0x52f161.40
push str.PatternFail_
lea ecx, [esp + 0x14]
call fcn.00411a30
mov eax, dword [esp + 0x1a0]
push 0x20
push ebp
mov bl, 0x11
push ebp
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x19c], bl
call fcn.00411c20
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x190], 0x12
call fcn.00412320
mov eax, dword [esp + 0x24]
mov byte [esp + 0x18c], bl
cmp eax, ebp
je 0x52ff6f
push eax
lea ecx, [esp + 0x28]
call fcn.00411610
push ecx
mov ecx, dword [esp + 0x14]
mov eax, esp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x18], esp
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
cmp eax, ebp
je 0x52ff8a
inc dword [eax]
push 0xbf
mov ecx, esi
call fcn.0052dea0
mov eax, dword [esp + 0x10]
mov byte [esp + 0x18c], 0
cmp eax, ebp
je case.0x52f161.40
push eax
lea ecx, [esp + 0x14]
call fcn.00411610
jmp case.0x52f161.40
lea ecx, [esp + 0x194]
call fcn.0051c940
push eax
mov ecx, esi
call fcn.0052de50
mov bl, byte [esp + 0x19c]
test bl, bl
je 0x530057
lea ecx, [esp + 0x194]
call fcn.0051c860
mov dl, byte [eax + 0x30]
mov ecx, esi
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0x14]
push eax
call fcn.0052de50
lea ecx, [esp + 0x194]
xor edi, edi
call fcn.0051c860
mov cl, byte [eax + 0x30]
test cl, cl
jbe 0x53005f
lea ecx, [esp + 0x194]
call fcn.0051c860
mov ecx, edi
and ecx, 0xff
mov dl, byte [eax + ecx]
mov ecx, esi
mov byte [esp + 0x14], dl
mov eax, dword [esp + 0x14]
push eax
call fcn.0052de50
lea ecx, [esp + 0x194]
inc edi
call fcn.0051c860
mov cl, byte [eax + 0x30]
mov byte [esp + 0x10], cl
mov edx, dword [esp + 0x10]
and edx, 0xff
cmp edi, edx
jl 0x53000c
jmp 0x53005f
push ebp
mov ecx, esi
call fcn.0052de50
lea ecx, [esp + 0x194]
call fcn.0051c980
push eax
mov ecx, esi
call fcn.0052de80
test bl, bl
je case.0x52f161.40
mov al, byte [esp + 0x1a4]
test al, al
je case.0x52f161.40
push str.PatternFail_
lea ecx, [esp + 0x14]
call fcn.00411a30
mov eax, dword [esp + 0x1a0]
push 0x20
push ebp
mov bl, 0x13
push ebp
push eax
lea ecx, [esp + 0x28]
mov byte [esp + 0x19c], bl
call fcn.00411c20
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x190], 0x14
call fcn.00412320
mov eax, dword [esp + 0x18]
mov byte [esp + 0x18c], bl
cmp eax, ebp
je 0x5300e1
push eax
lea ecx, [esp + 0x1c]
call fcn.00411610
push ecx
mov ecx, dword [esp + 0x14]
mov eax, esp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], esp
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
cmp eax, ebp
je 0x5300fc
inc dword [eax]
push 0xbf
mov ecx, esi
call fcn.0052dea0
mov eax, dword [esp + 0x10]
mov byte [esp + 0x18c], 0
cmp eax, ebp
je case.0x52f161.40
push eax
lea ecx, [esp + 0x14]
call fcn.00411610
jmp case.0x52f161.40
lea ecx, [esp + 0x194]
call fcn.0051c940
push eax
mov ecx, esi
call fcn.0052de50
lea ecx, [esp + 0x194]
call fcn.0051c980
push eax
mov ecx, esi
call fcn.0052de80
mov ecx, dword [esp + 0x198]
cmp ecx, ebp
je 0x530166
xor eax, eax
mov ax, word [ecx + 0x6e]
jmp 0x530168
xor eax, eax
push eax
mov ecx, esi
call fcn.0052de80
mov al, byte [esp + 0x19c]
test al, al
je case.0x52f161.40
mov al, byte [esp + 0x1a4]
test al, al
je case.0x52f161.40
push str.PatternFail_
lea ecx, [esp + 0x14]
call fcn.00411a30
mov edx, dword [esp + 0x1a0]
push 0x20
push ebp
mov bl, 0x15
push ebp
push edx
lea ecx, [esp + 0x40]
mov byte [esp + 0x19c], bl
call fcn.00411c20
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0x190], 0x16
call fcn.00412320
mov eax, dword [esp + 0x30]
mov byte [esp + 0x18c], bl
cmp eax, ebp
je 0x5301e5
push eax
lea ecx, [esp + 0x34]
call fcn.00411610
push ecx
mov ecx, dword [esp + 0x14]
mov eax, esp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x18], esp
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
cmp eax, ebp
je 0x530200
inc dword [eax]
push 0xbf
mov ecx, esi
call fcn.0052dea0
mov eax, dword [esp + 0x10]
mov byte [esp + 0x18c], 0
cmp eax, ebp
je 0x530226
push eax
lea ecx, [esp + 0x14]
call fcn.00411610
mov dword [esp + 0x10], ebp
jmp case.0x52f161.40
lea ecx, [esp + 0x194]
call fcn.0051c940
push eax
mov ecx, esi
call fcn.0052de50
push ebp
mov ecx, esi
call fcn.0052de50
push ebp
mov ecx, esi
call fcn.0052de80
lea ecx, [esp + 0x194]
call fcn.0051c980
push eax
mov ecx, esi
call fcn.0052de80
jmp 0x52f17c
lea ecx, [esp + 0x194]
call fcn.0051c940
push eax
mov ecx, esi
call fcn.0052de50
lea ecx, [esp + 0x194]
call fcn.0051c860
sub esp, 0x34
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00520be0
lea ecx, [esi + 0x40]
call fcn.00521300
push eax
mov ecx, esi
call fcn.0052de50
jmp case.0x52f161.40
lea ecx, [esp + 0x194]
call fcn.0051c940
push eax
mov ecx, esi
call fcn.0052de50
lea ecx, [esp + 0x194]
call fcn.0051c860
sub esp, 0x34
mov ecx, esp
mov dword [esp + 0x48], esp
jmp 0x5303d4
lea ecx, [esp + 0x194]
call fcn.0051c940
push eax
mov ecx, esi
call fcn.0052de50
mov ecx, dword [esp + 0x198]
cmp ecx, ebp
je 0x530310
xor eax, eax
mov ax, word [ecx + 0x6a]
mov ecx, esi
push eax
call fcn.0052de80
jmp 0x53042a
xor eax, eax
mov ecx, esi
push eax
call fcn.0052de80
jmp 0x53042a
lea edx, [esi + 8]
lea eax, [esp + 0x3c]
push edx
push eax
lea ecx, [esp + 0x19c]
call fcn.0051c990
push ecx
mov bl, 0x17
mov ecx, esp
mov dword [esp + 0x18], esp
push ecx
mov ecx, eax
mov byte [esp + 0x194], bl
call fcn.0046e260
lea ecx, [esp + 0x198]
mov byte [esp + 0x190], bl
call fcn.0051c940
push eax
mov ecx, esi
call fcn.0052dea0
mov eax, dword [esp + 0x40]
mov byte [esp + 0x18c], 0
cmp eax, ebp
je 0x530381
push eax
lea ecx, [esp + 0x44]
call fcn.00411610
mov dword [esp + 0x40], ebp
jmp case.0x52f161.40
lea ecx, [esp + 0x194]
call fcn.0051c940
push eax
mov ecx, esi
call fcn.0052de50
push ebp
mov ecx, esi
call fcn.0052de50
jmp case.0x52f161.40
lea ecx, [esp + 0x194]
call fcn.0051c940
push eax
mov ecx, esi
call fcn.0052de50
lea ecx, [esp + 0x194]
call fcn.0051c860
sub esp, 0x34
mov ecx, esp
mov dword [esp + 0x48], esp
push eax
call fcn.00520be0
lea ecx, [esi + 0x40]
call fcn.00521300
push eax
mov ecx, esi
call fcn.0052de50
lea ecx, [esp + 0x194]
call fcn.0051c980
push eax
mov ecx, esi
call fcn.0052de50
jmp case.0x52f161.40
lea ecx, [esp + 0x194]
call fcn.0051c940
push eax
mov ecx, esi
call fcn.0052de50
jmp case.0x52f161.40
lea ecx, [esp + 0x194]
call fcn.0051c940
push eax
mov ecx, esi
call fcn.0052de50
lea ecx, [esp + 0x194]
call fcn.0051c980
push eax
mov ecx, esi
call fcn.0052de80
lea ecx, [esp + 0x194]
mov dword [esp + 0x18c], 0xffffffff
call fcn.0051c6c0
mov ecx, dword [esp + 0x184]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x180
ret 0x14