Function at 0x51ae60
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0xfb0
push ebx
push ebp
push edi
mov edi, edx
mov ebx, ecx
mov edx, 0x3e7
lea ecx, [esp + 0x1c]
mov dword [esp + 0xc], edi
call fcn.00420e60
mov edx, 0x3e7
lea ecx, [esp + 0x404]
call fcn.00420e60
mov ebp, dword [esp + 0xfcc]
mov eax, dword [ebp + 0x3f0]
dec eax
cmp eax, 0x4d
ja case.default.0x51aeaf
movzx eax, byte [eax + 0x51e7d4]
push esi
jmp dword [eax*4 + 0x51e710]
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
mov edi, eax
test edi, edi
mov dword [esp + 0x14], edi
je case.0x51aeaf.49
mov eax, dword [ebp + 0xc7c]
test eax, eax
mov dword [esp + 0x1c], 2
mov byte [esp + 0x408], 0
je 0x51afad
add eax, 8
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
test edx, edx
je 0x51afad
lea ecx, [esp + 0x408]
lea esi, [ecx + 1]
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x51af10
sub ecx, esi
mov eax, edx
mov esi, ecx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51af20
sub eax, edx
add eax, esi
cmp eax, 0x3e7
ja 0x51afad
cmp dword [esp + 0x1c], 2
jle 0x51af53
lea edi, [esp + 0x408]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x51af41
mov dx, word [0x5a5348]
mov word [edi], dx
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov esi, eax
jmp 0x51af60
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51af60
lea edi, [esp + 0x408]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x51af71
mov edx, dword [esp + 0x1c]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp + 0xc7c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
inc edx
add ecx, 4
test eax, eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], ecx
jne 0x51aef2
mov al, byte [ebx]
cmp al, 0x24
jne 0x51afcf
cmp byte [ebx + 1], 0x28
jne 0x51afcf
push ebp
lea ecx, [esp + 0x40c]
push ecx
lea edx, [esp + 0x28]
mov ecx, ebx
call fcn.0051a690
jmp 0x51afe0
cmp al, 0x25
jne 0x51afec
push 0
lea edx, [esp + 0x24]
mov ecx, ebx
call fcn.0055d5e0
test eax, eax
je case.0x51aeaf.49
lea ebx, [esp + 0x20]
push ebp
lea edx, [esp + 0x40c]
mov ecx, ebx
call fcn.0051a770
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, edi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
lea ecx, [ebp + 0x80c]
sub ecx, ebx
lea esp, [esp]
mov al, byte [ebx]
mov byte [ecx + ebx], al
inc ebx
test al, al
jne 0x51b020
mov esi, dword [esp + 0xfc4]
mov edx, dword [esp + 0x10]
mov byte [esi], al
mov byte [ebp + 0x4d4], al
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51b041
mov edx, esi
lea ecx, [esp + 0x408]
lea eax, [esp + 0x408]
sub edx, ecx
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51b060
mov eax, 0x31
lea edx, [ebp + 8]
push edx
mov word [ebp + 0x7da], ax
mov word [ebp + 0x7a8], ax
call fcn.0059164b
mov ecx, dword [esp + 0xfcc]
add esp, 4
pop esi
mov dword [ebp + 0x3f4], eax
mov eax, dword [esp + 0xfc8]
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0xfb0
ret 0x10
mov eax, dword [ebp + 0xc7c]
test eax, eax
je case.0x51aeaf.49
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51b0d3
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
mov eax, dword [ebp + 0x404]
test eax, eax
je 0x51b0ec
mov ecx, ebp
call fcn.0051ac20
test eax, eax
je case.0x51aeaf.49
movzx edx, byte [ebx]
push edx
push 0x5ac2a0
call fcn.005912e0
add esp, 8
test eax, eax
je 0x51b12b
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
mov esi, eax
test esi, esi
je 0x51b12b
mov eax, dword [ebp + 0xc7c]
mov edx, dword [eax + 8]
push ebp
mov ecx, ebx
call fcn.0051a7f0
test eax, eax
je case.0x51aeaf.49
mov ebx, esi
mov edx, ebp
mov ecx, ebx
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov edx, dword [esp + 0xfc4]
lea esi, [ebp + 0x4d4]
mov ecx, edi
mov byte [edx], al
mov byte [esi], al
sub ecx, ebx
mov al, byte [ebx]
mov byte [ebx + ecx], al
inc ebx
test al, al
jne 0x51b151
mov cl, byte [ebp + 8]
cmp cl, 0x20
lea eax, [ebp + 8]
jne 0x51b16f
mov cl, byte [eax + 1]
inc eax
cmp cl, 0x20
je 0x51b166
cmp byte [eax], 0
je 0x51b180
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51b176
mov ecx, dword [ebp + 0xc7c]
mov edx, dword [ebp + 0x1c44]
mov ecx, dword [ecx + 8]
call fcn.0050fa60
test al, al
je 0x51b1ad
mov edx, dword [ebp + 0xc7c]
mov ecx, dword [edx + 8]
mov edx, esi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51b1a3
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
jmp 0x51b1c0
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51b1c0
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51b1d8
mov eax, dword [esp + 0xfcc]
mov ecx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0xfb0
ret 0x10
cmp byte [ebx], 0x20
jne 0x51b20c
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x51b204
cmp byte [ebx], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov edx, dword [esp + 0xfc4]
mov ecx, edi
mov byte [edx], al
mov byte [ebp + 0x4d4], al
sub ecx, ebx
lea esp, [esp]
mov al, byte [ebx]
mov byte [ebx + ecx], al
inc ebx
test al, al
jne 0x51b240
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51b258
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51b270
mov eax, dword [esp + 0xfcc]
mov ecx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0xfb0
ret 0x10
mov eax, dword [ebp + 0xc7c]
test eax, eax
je case.0x51aeaf.49
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51b2be
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
mov eax, dword [ebp + 0x404]
test eax, eax
je 0x51b2d7
mov ecx, ebp
call fcn.0051ac20
test eax, eax
je case.0x51aeaf.49
push 0x3a
push ebx
call fcn.005912e0
mov esi, eax
add esp, 8
test esi, esi
je case.0x51aeaf.49
mov byte [esi], 0
mov al, byte [ebx]
cmp al, 0x24
jne 0x51b313
cmp byte [ebx + 1], 0x28
jne 0x51b313
mov edx, dword [ebp + 0xc7c]
mov eax, dword [edx + 0xc]
push ebp
push eax
lea edx, [esp + 0x28]
mov ecx, ebx
call fcn.0051a690
jmp 0x51b324
cmp al, 0x25
jne 0x51b330
push 0
lea edx, [esp + 0x24]
mov ecx, ebx
call fcn.0055d5e0
test eax, eax
je case.0x51aeaf.49
lea ebx, [esp + 0x20]
mov ecx, dword [ebp + 0xc7c]
mov edx, dword [ecx + 0xc]
push ebp
mov ecx, ebx
call fcn.0051a770
test eax, eax
je case.0x51aeaf.49
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
jne 0x51b359
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x51b351
cmp byte [esi], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, esi
call fcn.0051ad50
mov edi, eax
test edi, edi
je case.0x51aeaf.49
mov edx, dword [ebp + 0xc7c]
mov edx, dword [edx + 8]
push ebp
mov ecx, esi
call fcn.0051a7f0
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, edi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
lea ecx, [ebp + 0x80c]
sub ecx, ebx
mov al, byte [ebx]
mov byte [ecx + ebx], al
inc ebx
test al, al
jne 0x51b3a7
mov ebx, dword [esp + 0xfc4]
mov edx, dword [esp + 0x10]
mov byte [ebx], al
lea esi, [ebp + 0x4d4]
mov byte [esi], al
mov eax, edi
sub edx, edi
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51b3d0
mov eax, dword [ebp + 0xc7c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x51b3fa
mov edx, ebx
lea esp, [esp]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51b3f0
mov ecx, dword [ebp + 0xc7c]
mov edx, dword [ebp + 0x1c44]
mov ecx, dword [ecx + 8]
call fcn.0050fa60
test al, al
je 0x51b42a
mov edx, dword [ebp + 0xc7c]
mov ecx, dword [edx + 8]
mov edx, esi
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51b420
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51b438
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51b450
mov eax, dword [esp + 0xfcc]
mov ecx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0xfb0
ret 0x10
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
test eax, eax
mov dword [esp + 0x14], eax
je case.0x51aeaf.49
mov ecx, dword [ebp + 0x1468]
call fcn.00561000
test eax, eax
je case.0x51aeaf.49
mov cl, byte [ebx]
cmp cl, 0x23
lea edi, [eax + 8]
mov esi, edi
jne 0x51b4b4
cmp dword [eax + 0x71c], 1
jmp 0x51b523
cmp cl, 0x3f
jne 0x51b4da
mov edx, dword [eax + 0x71c]
mov ecx, 2
cmp edx, ecx
jne case.0x51aeaf.49
cmp dword [eax + 0x720], ecx
jg case.0x51aeaf.49
jmp 0x51b529
cmp cl, 0x3d
jne 0x51b4fb
cmp dword [eax + 0x71c], 2
jne case.0x51aeaf.49
cmp dword [eax + 0x720], 3
jne case.0x51aeaf.49
jmp 0x51b52d
cmp cl, 0x21
jne 0x51b51c
cmp dword [eax + 0x71c], 2
jne case.0x51aeaf.49
cmp dword [eax + 0x720], 4
jne case.0x51aeaf.49
jmp 0x51b52d
cmp cl, 0x40
jne 0x51b529
cmp byte [edi], cl
jne case.0x51aeaf.49
test esi, esi
jne 0x51b550
mov al, byte [ebx + 1]
test al, al
je 0x51b535
inc ebx
push 0x20
push edi
call fcn.005912e0
mov esi, eax
add esp, 8
test esi, esi
je 0x51b54e
inc esi
je 0x51b54e
cmp byte [esi], 0
jne 0x51b550
mov esi, edi
push ebp
mov edx, esi
mov ecx, ebx
call fcn.0051a770
test eax, eax
jne 0x51b570
push ebp
mov edx, esi
mov ecx, ebx
call fcn.0051a7f0
test eax, eax
je case.0x51aeaf.49
mov esi, dword [esp + 0x14]
mov edx, ebp
mov ecx, esi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
lea ecx, [ebp + 0x80c]
sub ecx, ebx
lea ecx, [ecx]
mov al, byte [ebx]
mov byte [ecx + ebx], al
inc ebx
test al, al
jne 0x51b590
mov edx, dword [esp + 0xfc4]
mov byte [edx], al
mov edx, dword [esp + 0x10]
mov byte [ebp + 0x4d4], al
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51b5b1
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51b5d0
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51b5e8
mov eax, dword [esp + 0xfcc]
mov ecx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0xfb0
ret 0x10
cmp byte [ebx], 0x20
jne 0x51b61c
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x51b614
cmp byte [ebx], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov edx, dword [esp + 0xfc4]
mov ecx, edi
mov byte [edx], al
mov byte [ebp + 0x4d4], al
sub ecx, ebx
lea esp, [esp]
mov al, byte [ebx]
mov byte [ebx + ecx], al
inc ebx
test al, al
jne 0x51b650
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51b668
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51b680
mov eax, dword [esp + 0xfcc]
mov ecx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0xfb0
ret 0x10
cmp byte [ebx], 0x20
jne 0x51b6b8
lea esp, [esp]
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x51b6b0
cmp byte [ebx], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov edx, dword [esp + 0xfc4]
mov ecx, edi
mov byte [edx], al
mov byte [ebp + 0x4d4], al
sub ecx, ebx
mov al, byte [ebx]
mov byte [ebx + ecx], al
inc ebx
test al, al
jne 0x51b6e5
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51b700
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51b718
mov eax, dword [esp + 0xfcc]
mov ecx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0xfb0
ret 0x10
mov ecx, dword [ebp + 0xc88]
call fcn.0042eb00
test eax, eax
je case.0x51aeaf.49
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51b76b
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
mov esi, eax
test esi, esi
je case.0x51aeaf.49
mov al, byte [ebx]
cmp al, 0x24
jne 0x51b7a2
cmp byte [ebx + 1], 0x28
jne 0x51b7a2
mov edx, dword [ebp + 0xc88]
add edx, 4
push ebp
push edx
lea edx, [esp + 0x28]
mov ecx, ebx
call fcn.0051a690
jmp 0x51b7b3
cmp al, 0x25
jne 0x51b7bf
push 0
lea edx, [esp + 0x24]
mov ecx, ebx
call fcn.0055d5e0
test eax, eax
je case.0x51aeaf.49
lea ebx, [esp + 0x20]
mov edx, dword [ebp + 0xc88]
push ebp
add edx, 4
mov ecx, ebx
call fcn.0051a770
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, esi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
lea ecx, [ebp + 0x80c]
sub ecx, ebx
mov al, byte [ebx]
mov byte [ecx + ebx], al
inc ebx
test al, al
jne 0x51b7f1
mov ebx, dword [esp + 0xfc4]
mov byte [ebx], al
mov edx, edi
mov byte [ebp + 0x4d4], al
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51b810
mov eax, dword [ebp + 0xc88]
add eax, 4
mov edx, ebx
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x51b825
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51b840
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51b858
mov eax, dword [esp + 0xfcc]
mov ecx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0xfb0
ret 0x10
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51b898
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov ecx, ebx
call fcn.0051ad50
mov edi, eax
test edi, edi
je case.0x51aeaf.49
mov al, byte [ebx]
cmp al, 0x24
jne 0x51b8d6
cmp byte [ebx + 1], 0x28
jne 0x51b8d6
push ebp
push 0
lea edx, [esp + 0x28]
mov ecx, ebx
call fcn.0051a690
jmp 0x51b8e7
cmp al, 0x25
jne 0x51b8f3
push 0
lea edx, [esp + 0x24]
mov ecx, ebx
call fcn.0055d5e0
test eax, eax
je case.0x51aeaf.49
lea ebx, [esp + 0x20]
mov ecx, dword [ebp + 0x1468]
call fcn.00561000
test eax, eax
je 0x51b915
mov ecx, dword [eax + 0x71c]
test ecx, ecx
jne 0x51b915
cmp byte [ebx], 0x2a
jne case.0x51aeaf.49
mov al, byte [ebx]
cmp al, 0x3f
jne 0x51b92a
mov ecx, dword [ebp + 0xc88]
call fcn.0042eb00
test eax, eax
jmp 0x51b9a7
cmp al, 0x40
jne 0x51b93d
mov ecx, dword [ebp + 0xc88]
call fcn.0042eb00
test eax, eax
jmp 0x51b9a7
cmp al, 0x3d
jne 0x51b96a
mov ecx, dword [ebp + 0xc88]
call fcn.0042eb00
test eax, eax
je case.0x51aeaf.49
mov edx, dword [ebp + 0xc88]
mov eax, dword [edx + 0x540]
test eax, eax
jne case.0x51aeaf.49
jmp 0x51b995
cmp al, 0x21
jne 0x51b9a5
mov ecx, dword [ebp + 0xc88]
call fcn.0042eb00
test eax, eax
je case.0x51aeaf.49
mov eax, dword [ebp + 0xc88]
mov ecx, dword [eax + 0x540]
test ecx, ecx
je case.0x51aeaf.49
mov al, byte [ebx + 1]
inc ebx
test al, al
je 0x51b9d3
lea edx, [ebp + 0x40c]
jmp 0x51b9c3
cmp al, 0x2a
jne case.0x51aeaf.49
lea esi, [ebp + 0x40c]
mov ecx, ebx
mov edx, esi
push ebp
call fcn.0051a770
test eax, eax
jne 0x51b9d3
mov edx, esi
mov ecx, ebx
push ebp
call fcn.0051a7f0
test eax, eax
je case.0x51aeaf.49
mov edx, 0x3e7
lea ecx, [esp + 0x7f0]
call fcn.00420e60
mov edx, 0x3e7
lea ecx, [esp + 0xbd8]
call fcn.00420e60
mov eax, dword [ebp + 0x1468]
test eax, eax
jne 0x51bae1
mov eax, dword [ebp + 0xc7c]
test eax, eax
je 0x51bae1
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x51bae1
push 0x3a
push edi
call fcn.005912e0
add esp, 8
test eax, eax
je 0x51bae1
mov byte [eax], 0
mov cl, byte [eax + 1]
inc eax
cmp cl, 0x20
jne 0x51ba49
jmp 0x51ba40
mov cl, byte [eax + 1]
inc eax
cmp cl, 0x20
je 0x51ba40
cmp byte [eax], 0
je case.0x51aeaf.49
lea edx, [esp + 0xbd8]
sub edx, eax
jmp 0x51ba60
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51ba60
mov al, byte [edi]
cmp al, 0x24
jne 0x51ba89
cmp byte [edi + 1], 0x28
jne 0x51ba89
push ebp
push 0
lea edx, [esp + 0x7f8]
mov ecx, edi
call fcn.0051a690
jmp 0x51ba9d
cmp al, 0x25
jne 0x51baac
push 0
lea edx, [esp + 0x7f4]
mov ecx, edi
call fcn.0055d5e0
test eax, eax
je case.0x51aeaf.49
lea edi, [esp + 0x7f0]
mov ecx, dword [ebp + 0xc7c]
mov edx, dword [ecx + 0xc]
push ebp
mov ecx, edi
call fcn.0051a770
test eax, eax
je case.0x51aeaf.49
mov edx, ebx
mov eax, edi
sub edx, edi
jmp 0x51bad0
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51bad0
lea edi, [esp + 0xbd8]
mov edx, ebp
mov ecx, edi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
lea ecx, [ebp + 0x80c]
sub ecx, ebx
lea ebx, [ebx]
mov al, byte [ebx]
mov byte [ecx + ebx], al
inc ebx
test al, al
jne 0x51bb00
mov esi, dword [esp + 0xfc4]
mov edx, dword [esp + 0x10]
mov byte [esi], al
mov byte [ebp + 0x4d4], al
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51bb21
mov eax, dword [ebp + 0x1468]
test eax, eax
jne 0x51bb52
mov eax, dword [ebp + 0xc7c]
test eax, eax
je 0x51bb52
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x51bb52
mov edx, esi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51bb48
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51bb60
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51bb78
jmp 0x51e6f2
cmp byte [ebx], 0x20
jne 0x51bb98
lea esp, [esp]
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x51bb90
cmp byte [ebx], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov ecx, dword [esp + 0xfc4]
mov byte [ecx], al
mov ecx, edi
mov byte [ebp + 0x4d4], al
sub ecx, ebx
mov al, byte [ebx]
mov byte [ebx + ecx], al
inc ebx
test al, al
jne 0x51bbc5
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51bbe0
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51bbf8
jmp 0x51e6f2
cmp byte [ebx], 0x20
jne 0x51bc18
lea esp, [esp]
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x51bc10
cmp byte [ebx], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov edx, dword [esp + 0xfc4]
mov ecx, edi
mov byte [edx], al
mov byte [ebp + 0x4d4], al
sub ecx, ebx
mov al, byte [ebx]
mov byte [ebx + ecx], al
inc ebx
test al, al
jne 0x51bc45
lea eax, [ebp + 0xc98]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51bc57
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
nop
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51bc70
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51bc88
mov ecx, dword [esp + 0xfcc]
mov edx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [edx], ecx
pop ebx
add esp, 0xfb0
ret 0x10
mov eax, dword [ebp + 0xc7c]
test eax, eax
je case.0x51aeaf.49
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51bcd6
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
mov esi, eax
test esi, esi
je case.0x51aeaf.49
mov al, byte [ebx]
cmp al, 0x24
jne 0x51bd0d
cmp byte [ebx + 1], 0x28
jne 0x51bd0d
mov eax, dword [ebp + 0xc7c]
mov ecx, dword [eax + 0xc]
push ebp
push ecx
lea edx, [esp + 0x28]
mov ecx, ebx
call fcn.0051a690
jmp 0x51bd1e
cmp al, 0x25
jne 0x51bd2a
push 0
lea edx, [esp + 0x24]
mov ecx, ebx
call fcn.0055d5e0
test eax, eax
je case.0x51aeaf.49
lea ebx, [esp + 0x20]
mov edx, dword [ebp + 0xc7c]
mov edx, dword [edx + 0xc]
push ebp
mov ecx, ebx
call fcn.0051a770
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, esi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
lea ecx, [ebp + 0x80c]
sub ecx, ebx
lea esp, [esp]
mov al, byte [ebx]
mov byte [ecx + ebx], al
inc ebx
test al, al
jne 0x51bd60
mov edi, dword [esp + 0xfc4]
mov edx, dword [esp + 0x10]
mov byte [edi], al
lea ebx, [ebp + 0x4d4]
mov byte [ebx], al
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51bd83
mov eax, dword [ebp + 0xc7c]
mov ecx, dword [eax + 0xc]
mov edx, edi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51bd98
mov ecx, dword [ebp + 0xc7c]
mov edx, dword [ebp + 0x1c44]
mov ecx, dword [ecx + 8]
call fcn.0050fa60
test al, al
je 0x51bdcf
mov edx, dword [ebp + 0xc7c]
mov ecx, dword [edx + 8]
mov edx, ebx
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51bdc5
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51bde0
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51bdf8
mov eax, dword [esp + 0xfcc]
mov ecx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0xfb0
ret 0x10
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51be38
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
mov ecx, dword [ebp + 0xc88]
call fcn.0042eb00
test eax, eax
jne 0x51be5a
mov ecx, dword [ebp + 0xc84]
call fcn.00491bd0
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
mov esi, eax
test esi, esi
je case.0x51aeaf.49
mov ecx, dword [ebp + 0xc88]
call fcn.0042eb00
test eax, eax
je 0x51bed1
mov edx, dword [ebp + 0xc88]
mov eax, dword [edx + 0x540]
test eax, eax
je 0x51beb6
mov eax, dword [str.FSERVE]
mov cx, word [0x5ac29c]
mov dl, byte [0x5ac29e]
mov dword [esp + 0x408], eax
mov word [esp + 0x40c], cx
mov byte [esp + 0x40e], dl
jmp 0x51bef9
mov eax, dword [str.CHAT]
mov cl, byte [0x5a5d70]
mov dword [esp + 0x408], eax
mov byte [esp + 0x40c], cl
jmp 0x51bef9
mov ecx, dword [ebp + 0xc84]
call fcn.00491bd0
test eax, eax
je 0x51bef9
mov edx, dword [str.SEND]
mov al, byte [0x5ac294]
mov dword [esp + 0x408], edx
mov byte [esp + 0x40c], al
mov al, byte [ebx]
cmp al, 0x24
jne 0x51bf15
cmp byte [ebx + 1], 0x28
jne 0x51bf15
push ebp
push 0
lea edx, [esp + 0x28]
mov ecx, ebx
call fcn.0051a690
jmp 0x51bf26
cmp al, 0x25
jne 0x51bf32
push 0
lea edx, [esp + 0x24]
mov ecx, ebx
call fcn.0055d5e0
test eax, eax
je case.0x51aeaf.49
lea ebx, [esp + 0x20]
push ebp
lea edx, [esp + 0x40c]
mov ecx, ebx
call fcn.0051a770
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, esi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
lea ecx, [ebp + 0x80c]
sub ecx, ebx
mov al, byte [ebx]
mov byte [ecx + ebx], al
inc ebx
test al, al
jne 0x51bf62
mov ecx, dword [esp + 0xfc4]
mov byte [ecx], al
mov edx, edi
mov byte [ebp + 0x4d4], al
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51bf81
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51bfa0
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51bfb8
jmp 0x51e6f2
mov ecx, dword [ebp + 0xc58]
call fcn.0045d6f0
test eax, eax
je case.0x51aeaf.49
push 0x3a
push ebx
call fcn.005912e0
mov esi, eax
add esp, 8
test esi, esi
je case.0x51aeaf.49
push ebp
lea edx, [ebp + 0xc98]
mov ecx, ebx
mov byte [esi], 0
call fcn.0051a770
test eax, eax
je case.0x51aeaf.49
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
jne 0x51c018
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x51c010
cmp byte [esi], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, esi
call fcn.0051ad50
mov edi, eax
test edi, edi
je case.0x51aeaf.49
push 0x2c
push esi
call fcn.005912e0
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x51c052
mov byte [ebx], 0
mov al, byte [ebx + 1]
inc ebx
test al, al
jne 0x51c052
xor ebx, ebx
cmp byte [esi], 0x20
jne 0x51c05f
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x51c057
push ebp
lea edx, [ebp + 0x107f]
mov ecx, esi
call fcn.0051a770
test eax, eax
jne 0x51c07d
test ebx, ebx
je case.0x51aeaf.49
mov esi, ebx
jmp 0x51c034
mov edx, ebp
mov ecx, edi
mov ebx, edi
call fcn.0051ad50
test eax, eax
mov dword [esp + 0x18], eax
je case.0x51aeaf.49
push 0x2c
push ebx
call fcn.005912e0
mov edi, eax
add esp, 8
test edi, edi
je 0x51c0b2
mov byte [edi], 0
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x51c0b2
xor edi, edi
cmp byte [ebx], 0x20
jne 0x51c0bf
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x51c0b7
cmp byte [ebx], 0
je 0x51c13d
push 0x5a574c
push ebx
call fcn.005a299c
add esp, 8
test eax, eax
je 0x51c14c
push ebx
call fcn.0059164b
mov ecx, dword [ebp + 0xc5c]
add esp, 4
cmp eax, ecx
je 0x51c14c
push 0x2d
push ebx
call fcn.005912e0
mov esi, eax
add esp, 8
test esi, esi
je 0x51c13d
mov byte [esi], 0
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
jne 0x51c10d
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x51c105
cmp byte [ebx], 0
je 0x51c13d
cmp byte [esi], 0
je 0x51c13d
push ebx
call fcn.0059164b
mov ecx, dword [ebp + 0xc5c]
add esp, 4
cmp ecx, eax
jl 0x51c13d
push esi
call fcn.0059164b
mov ecx, dword [ebp + 0xc5c]
add esp, 4
cmp ecx, eax
jle 0x51c14c
test edi, edi
je case.0x51aeaf.49
mov ebx, edi
jmp 0x51c094
mov esi, dword [esp + 0x18]
mov edx, ebp
mov ecx, esi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov ecx, dword [esp + 0xfc4]
mov edx, dword [esp + 0x10]
mov byte [ecx], al
mov byte [ebp + 0x4d4], al
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51c178
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51c190
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51c1a8
jmp 0x51e6f2
cmp byte [ebx], 0x20
jne 0x51c1c8
lea esp, [esp]
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x51c1c0
cmp byte [ebx], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov edx, dword [esp + 0xfc4]
mov ecx, edi
mov byte [edx], al
mov byte [ebp + 0x4d4], al
sub ecx, ebx
mov al, byte [ebx]
mov byte [ebx + ecx], al
inc ebx
test al, al
jne 0x51c1f5
mov eax, dword [ebp + 0x1c44]
add eax, 0x1128
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x51c210
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51c228
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51c240
mov ecx, dword [esp + 0xfcc]
mov edx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [edx], ecx
pop ebx
add esp, 0xfb0
ret 0x10
cmp byte [ebx], 0x20
jne 0x51c278
lea esp, [esp]
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x51c270
cmp byte [ebx], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov eax, dword [esp + 0xfc4]
mov ecx, edi
mov byte [eax], 0
mov byte [ebp + 0x4d4], 0
sub ecx, ebx
mov al, byte [ebx]
mov byte [ebx + ecx], al
inc ebx
test al, al
jne 0x51c2a7
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
nop
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51c2c0
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51c2d8
mov ecx, dword [esp + 0xfcc]
mov edx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [edx], ecx
pop ebx
add esp, 0xfb0
ret 0x10
mov eax, dword [ebp + 0xc7c]
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
mov esi, eax
test esi, esi
je case.0x51aeaf.49
mov eax, dword [ebp + 0xc7c]
push eax
lea edx, [esp + 0x40c]
xor ecx, ecx
mov byte [esp + 0x40c], 0
call fcn.005039a0
mov al, byte [ebx]
cmp al, 0x24
jne 0x51c35f
cmp byte [ebx + 1], 0x28
jne 0x51c35f
push ebp
lea ecx, [esp + 0x40c]
push ecx
lea edx, [esp + 0x28]
mov ecx, ebx
call fcn.0051a690
jmp 0x51c370
cmp al, 0x25
jne 0x51c37c
push 0
lea edx, [esp + 0x24]
mov ecx, ebx
call fcn.0055d5e0
test eax, eax
je case.0x51aeaf.49
lea ebx, [esp + 0x20]
push ebp
lea edx, [esp + 0x40c]
mov ecx, ebx
call fcn.0051a770
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, esi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
lea ecx, [ebp + 0x80c]
sub ecx, ebx
lea esp, [esp]
mov al, byte [ebx]
mov byte [ecx + ebx], al
inc ebx
test al, al
jne 0x51c3b0
mov ebx, dword [esp + 0xfc4]
mov byte [ebx], al
mov edx, edi
mov byte [ebp + 0x4d4], al
mov eax, esi
sub edx, esi
nop
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51c3d0
mov edx, ebx
lea ecx, [esp + 0x408]
lea eax, [esp + 0x408]
sub edx, ecx
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51c3f0
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51c408
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51c420
jmp 0x51e6f2
cmp byte [ebx], 0x20
jne 0x51c43c
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x51c434
cmp byte [ebx], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov ecx, dword [esp + 0xfc4]
mov byte [ecx], al
mov ecx, edi
mov byte [ebp + 0x4d4], al
sub ecx, ebx
lea esp, [esp]
mov al, byte [ebx]
mov byte [ebx + ecx], al
inc ebx
test al, al
jne 0x51c470
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51c488
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51c4a0
jmp 0x51e6f2
mov ecx, dword [ebp + 0xc84]
call fcn.00491bd0
test eax, eax
je case.0x51aeaf.49
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51c4db
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
mov esi, eax
test esi, esi
je case.0x51aeaf.49
mov al, byte [ebx]
cmp al, 0x24
jne 0x51c515
cmp byte [ebx + 1], 0x28
jne 0x51c515
mov ecx, dword [ebp + 0xc84]
add ecx, 0x234
push ebp
push ecx
lea edx, [esp + 0x28]
mov ecx, ebx
call fcn.0051a690
jmp 0x51c526
cmp al, 0x25
jne 0x51c532
push 0
lea edx, [esp + 0x24]
mov ecx, ebx
call fcn.0055d5e0
test eax, eax
je case.0x51aeaf.49
lea ebx, [esp + 0x20]
mov edx, dword [ebp + 0xc84]
push ebp
add edx, 0x234
mov ecx, ebx
call fcn.0051aab0
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, esi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov edx, dword [esp + 0xfc4]
mov byte [edx], al
mov edx, edi
mov byte [ebp + 0x4d4], al
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51c574
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51c590
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51c5a8
mov eax, dword [esp + 0xfcc]
mov ecx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0xfb0
ret 0x10
mov ecx, dword [ebp + 0xc80]
call fcn.005261b0
test eax, eax
je case.0x51aeaf.49
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51c5fb
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
mov esi, eax
test esi, esi
je case.0x51aeaf.49
mov al, byte [ebx]
cmp al, 0x24
jne 0x51c635
cmp byte [ebx + 1], 0x28
jne 0x51c635
mov edx, dword [ebp + 0xc80]
add edx, 0x234
push ebp
push edx
lea edx, [esp + 0x28]
mov ecx, ebx
call fcn.0051a690
jmp 0x51c646
cmp al, 0x25
jne 0x51c652
push 0
lea edx, [esp + 0x24]
mov ecx, ebx
call fcn.0055d5e0
test eax, eax
je case.0x51aeaf.49
lea ebx, [esp + 0x20]
mov edx, dword [ebp + 0xc80]
push ebp
add edx, 0x234
mov ecx, ebx
call fcn.0051aab0
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, esi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov eax, dword [esp + 0xfc4]
mov byte [eax], 0
mov edx, edi
mov byte [ebp + 0x4d4], 0
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51c696
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51c6b0
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51c6c8
mov ecx, dword [esp + 0xfcc]
mov edx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [edx], ecx
pop ebx
add esp, 0xfb0
ret 0x10
mov eax, dword [ebp + 0x1468]
test eax, eax
je case.0x51aeaf.49
mov al, byte [ebp + 0x107f]
test al, al
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
mov edi, eax
test edi, edi
je case.0x51aeaf.49
push ebp
lea edx, [ebp + 0x107f]
mov ecx, ebx
call fcn.0051a770
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, edi
call fcn.0051ad50
test eax, eax
mov dword [esp + 0x18], eax
je case.0x51aeaf.49
mov ecx, dword [ebp + 0x1468]
call fcn.00561000
test eax, eax
je case.0x51aeaf.49
mov cl, byte [edi]
cmp cl, 0x23
lea esi, [eax + 8]
mov dword [esp + 0x14], esi
jne 0x51c773
cmp dword [eax + 0x71c], 1
jmp 0x51c7e2
cmp cl, 0x3f
jne 0x51c799
mov edx, dword [eax + 0x71c]
mov ecx, 2
cmp edx, ecx
jne case.0x51aeaf.49
cmp dword [eax + 0x720], ecx
jg case.0x51aeaf.49
jmp 0x51c7e8
cmp cl, 0x3d
jne 0x51c7ba
cmp dword [eax + 0x71c], 2
jne case.0x51aeaf.49
cmp dword [eax + 0x720], 3
jne case.0x51aeaf.49
jmp 0x51c7ec
cmp cl, 0x21
jne 0x51c7db
cmp dword [eax + 0x71c], 2
jne case.0x51aeaf.49
cmp dword [eax + 0x720], 4
jne case.0x51aeaf.49
jmp 0x51c7ec
cmp cl, 0x40
jne 0x51c7e8
cmp byte [esi], cl
jne case.0x51aeaf.49
test esi, esi
jne 0x51c815
mov al, byte [edi + 1]
test al, al
je 0x51c7f4
inc edi
mov eax, dword [esp + 0x14]
push 0x20
push eax
call fcn.005912e0
mov esi, eax
add esp, 8
test esi, esi
je 0x51c811
inc esi
je 0x51c811
cmp byte [esi], 0
jne 0x51c815
mov esi, dword [esp + 0x14]
push ebp
mov edx, esi
mov ecx, edi
call fcn.0051a770
test eax, eax
jne 0x51c835
push ebp
mov edx, esi
mov ecx, edi
call fcn.0051a7f0
test eax, eax
je case.0x51aeaf.49
mov edi, dword [esp + 0x18]
mov edx, ebp
mov ecx, edi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
lea ecx, [ebp + 0x80c]
mov dword [ebp + 0xc70], 1
sub ecx, ebx
lea esp, [esp]
mov al, byte [ebx]
mov byte [ecx + ebx], al
inc ebx
test al, al
jne 0x51c860
mov esi, dword [esp + 0xfc4]
mov edx, dword [esp + 0x10]
mov byte [esi], al
mov byte [ebp + 0x4d4], al
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51c881
lea eax, [ebp + 0x107f]
mov edx, esi
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51c895
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51c8b0
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51c8c8
mov ecx, dword [esp + 0xfcc]
mov edx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [edx], ecx
pop ebx
add esp, 0xfb0
ret 0x10
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
test eax, eax
mov dword [esp + 0x14], eax
je case.0x51aeaf.49
mov ecx, dword [ebp + 0x1468]
call fcn.00561000
test eax, eax
je case.0x51aeaf.49
mov cl, byte [ebx]
cmp cl, 0x23
lea edi, [eax + 8]
mov esi, edi
jne 0x51c92c
cmp dword [eax + 0x71c], 1
jmp 0x51c99b
cmp cl, 0x3f
jne 0x51c952
mov edx, dword [eax + 0x71c]
mov ecx, 2
cmp edx, ecx
jne case.0x51aeaf.49
cmp dword [eax + 0x720], ecx
jg case.0x51aeaf.49
jmp 0x51c9a1
cmp cl, 0x3d
jne 0x51c973
cmp dword [eax + 0x71c], 2
jne case.0x51aeaf.49
cmp dword [eax + 0x720], 3
jne case.0x51aeaf.49
jmp 0x51c9a5
cmp cl, 0x21
jne 0x51c994
cmp dword [eax + 0x71c], 2
jne case.0x51aeaf.49
cmp dword [eax + 0x720], 4
jne case.0x51aeaf.49
jmp 0x51c9a5
cmp cl, 0x40
jne 0x51c9a1
cmp byte [edi], cl
jne case.0x51aeaf.49
test esi, esi
jne 0x51c9c8
mov al, byte [ebx + 1]
test al, al
je 0x51c9ad
inc ebx
push 0x20
push edi
call fcn.005912e0
mov esi, eax
add esp, 8
test esi, esi
je 0x51c9c6
inc esi
je 0x51c9c6
cmp byte [esi], 0
jne 0x51c9c8
mov esi, edi
push ebp
mov edx, esi
mov ecx, ebx
call fcn.0051a770
test eax, eax
jne 0x51c9e8
push ebp
mov edx, esi
mov ecx, ebx
call fcn.0051a7f0
test eax, eax
je case.0x51aeaf.49
mov edi, dword [esp + 0x14]
mov edx, ebp
mov ecx, edi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
lea ecx, [ebp + 0x80c]
sub ecx, ebx
mov al, byte [ebx]
mov byte [ecx + ebx], al
inc ebx
test al, al
jne 0x51ca05
mov esi, dword [esp + 0xfc4]
mov edx, dword [esp + 0x10]
mov byte [esi], al
mov byte [ebp + 0x4d4], al
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51ca26
mov ecx, dword [0x5cbaac]
test ecx, ecx
je 0x51ca4a
mov edx, esi
lea esp, [esp]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51ca40
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51ca58
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51ca70
mov eax, dword [esp + 0xfcc]
mov ecx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0xfb0
ret 0x10
mov eax, dword [ebp + 0xc7c]
test eax, eax
je case.0x51aeaf.49
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51cabe
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
mov esi, eax
test esi, esi
je case.0x51aeaf.49
mov edx, dword [ebp + 0xc7c]
mov edx, dword [edx + 0xc]
push ebp
mov ecx, ebx
call fcn.0051a7f0
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, esi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov eax, dword [esp + 0xfc4]
mov byte [eax], 0
lea ebx, [ebp + 0x4d4]
mov edx, edi
mov byte [ebx], 0
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51cb14
mov ecx, dword [ebp + 0xc7c]
mov edx, dword [ebp + 0x1c44]
mov ecx, dword [ecx + 0xc]
call fcn.0050fa60
test al, al
je 0x51cb4b
mov edx, dword [ebp + 0xc7c]
mov ecx, dword [edx + 0xc]
mov edx, ebx
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51cb41
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51cb60
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51cb78
mov eax, dword [esp + 0xfcc]
mov ecx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0xfb0
ret 0x10
mov eax, dword [ebp + 0xc7c]
test eax, eax
je case.0x51aeaf.49
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51cbc6
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
mov eax, dword [ebp + 0x404]
test eax, eax
je 0x51cbdf
mov ecx, ebp
call fcn.0051ac20
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
mov esi, eax
test esi, esi
je case.0x51aeaf.49
mov edx, dword [ebp + 0xc7c]
mov edx, dword [edx + 8]
push ebp
mov ecx, ebx
call fcn.0051a7f0
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, esi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov eax, dword [esp + 0xfc4]
mov byte [eax], 0
lea ebx, [ebp + 0x4d4]
mov edx, edi
mov byte [ebx], 0
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51cc35
mov ecx, dword [ebp + 0xc7c]
mov edx, dword [ebp + 0x1c44]
mov ecx, dword [ecx + 8]
call fcn.0050fa60
test al, al
je 0x51cc6c
mov edx, dword [ebp + 0xc7c]
mov ecx, dword [edx + 8]
mov edx, ebx
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51cc62
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51cc80
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51cc98
mov eax, dword [esp + 0xfcc]
mov ecx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0xfb0
ret 0x10
mov eax, dword [ebp + 0xc7c]
test eax, eax
je case.0x51aeaf.49
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51cce6
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
mov eax, dword [ebp + 0x404]
test eax, eax
je 0x51ccff
mov ecx, ebp
call fcn.0051ac20
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
mov esi, eax
test esi, esi
je case.0x51aeaf.49
mov edx, dword [ebp + 0xc7c]
mov edx, dword [edx + 8]
push ebp
mov ecx, ebx
call fcn.0051a7f0
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, esi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov edi, dword [esp + 0xfc4]
mov edx, dword [esp + 0x10]
mov byte [edi], al
lea ebx, [ebp + 0x4d4]
mov byte [ebx], al
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51cd55
mov eax, dword [ebp + 0xc7c]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x51cd7a
mov edx, edi
mov edi, edi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51cd70
mov ecx, dword [ebp + 0xc7c]
mov edx, dword [ebp + 0x1c44]
mov ecx, dword [ecx + 8]
call fcn.0050fa60
test al, al
je 0x51cdaa
mov edx, dword [ebp + 0xc7c]
mov ecx, dword [edx + 8]
mov edx, ebx
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51cda0
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51cdb8
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51cdd0
mov eax, dword [esp + 0xfcc]
mov ecx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0xfb0
ret 0x10
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51ce10
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
mov eax, dword [ebp + 0x404]
test eax, eax
je 0x51ce29
mov ecx, ebp
call fcn.0051ac20
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
mov esi, eax
test esi, esi
je case.0x51aeaf.49
mov edx, dword [ebp + 0x1c44]
lea ecx, [esp + 0x408]
call fcn.004f1a80
push ebp
lea edx, [esp + 0x40c]
mov ecx, ebx
call fcn.0051a770
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, esi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov edx, dword [esp + 0xfc4]
mov byte [edx], al
mov edx, edi
mov byte [ebp + 0x4d4], al
mov eax, esi
sub edx, esi
jmp 0x51ce90
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51ce90
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51cea8
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51cec0
mov eax, dword [esp + 0xfcc]
mov ecx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0xfb0
ret 0x10
mov ecx, dword [ebp + 0x1468]
test ecx, ecx
je case.0x51aeaf.49
call fcn.00561000
mov edi, eax
test edi, edi
mov dword [esp + 0x1c], edi
je case.0x51aeaf.49
push 0x3a
push ebx
call fcn.005912e0
mov esi, eax
add esp, 8
test esi, esi
je case.0x51aeaf.49
mov byte [esi], 0
mov al, byte [ebx]
cmp al, 0x24
jne 0x51cf3c
cmp byte [ebx + 1], 0x28
jne 0x51cf3c
push ebp
push 0
lea edx, [esp + 0x28]
mov ecx, ebx
call fcn.0051a690
jmp 0x51cf4d
cmp al, 0x25
jne 0x51cf59
push 0
lea edx, [esp + 0x24]
mov ecx, ebx
call fcn.0055d5e0
test eax, eax
je case.0x51aeaf.49
lea ebx, [esp + 0x20]
push 0x5a5748
push ebx
call fcn.005a299c
add esp, 8
test eax, eax
je 0x51cf7e
push ebp
lea edx, [edi + 8]
mov ecx, ebx
call fcn.0051a770
test eax, eax
je case.0x51aeaf.49
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
jne 0x51cf8e
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x51cf86
cmp byte [esi], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, esi
call fcn.0051ad50
mov edi, eax
test edi, edi
je case.0x51aeaf.49
lea ebx, [ebx]
push 0x2c
push esi
call fcn.005912e0
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x51cfce
mov byte [ebx], 0
mov al, byte [ebx + 1]
inc ebx
test al, al
jne 0x51cfce
xor ebx, ebx
cmp byte [esi], 0x20
jne 0x51cfdb
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x51cfd3
cmp byte [esi], 0
je 0x51d005
push 0x5a574c
push esi
call fcn.005a299c
add esp, 8
test eax, eax
je 0x51d011
push esi
call fcn.0059164b
mov ecx, dword [ebp + 0xc64]
add esp, 4
cmp eax, ecx
je 0x51d011
test ebx, ebx
je case.0x51aeaf.49
mov esi, ebx
jmp 0x51cfb0
mov edx, ebp
mov ecx, edi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov edx, dword [esp + 0xfc4]
mov byte [edx], al
mov edx, dword [esp + 0x10]
lea ebx, [ebp + 0x4d4]
mov byte [ebx], al
mov eax, edi
sub edx, edi
jmp 0x51d040
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d040
mov esi, dword [esp + 0x1c]
mov edx, dword [ebp + 0x1c44]
add esi, 8
mov ecx, esi
call fcn.0050fa60
test al, al
je 0x51d072
mov edx, ebx
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51d068
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d080
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d098
mov eax, dword [esp + 0xfcc]
mov ecx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0xfb0
ret 0x10
cmp byte [ebx], 0x20
jne 0x51d0cc
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x51d0c4
cmp byte [ebx], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov edx, dword [esp + 0xfc4]
mov ecx, edi
mov byte [edx], al
mov byte [ebp + 0x4d4], al
sub ecx, ebx
lea esp, [esp]
mov al, byte [ebx]
mov byte [ebx + ecx], al
inc ebx
test al, al
jne 0x51d100
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d118
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d130
mov eax, dword [esp + 0xfcc]
mov ecx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0xfb0
ret 0x10
mov eax, dword [ebp + 0xc7c]
test eax, eax
je case.0x51aeaf.49
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51d17e
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
mov eax, dword [ebp + 0x404]
test eax, eax
je 0x51d197
mov ecx, ebp
call fcn.0051ac20
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
mov esi, eax
test esi, esi
je case.0x51aeaf.49
mov edx, dword [ebp + 0xc7c]
mov edx, dword [edx + 8]
push ebp
mov ecx, ebx
call fcn.0051a7f0
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, esi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov edi, dword [esp + 0xfc4]
mov edx, dword [esp + 0x10]
mov byte [edi], al
lea ebx, [ebp + 0x4d4]
mov byte [ebx], al
mov eax, esi
sub edx, esi
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51d1f0
mov eax, dword [ebp + 0xc7c]
mov edx, dword [ebp + 0x1c44]
mov ecx, dword [eax + 8]
call fcn.0050fa60
test al, al
je 0x51d22a
mov ecx, dword [ebp + 0xc7c]
mov ecx, dword [ecx + 8]
mov edx, ebx
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51d220
mov edx, dword [ebp + 0xc7c]
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x51d2bd
mov edx, edi
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51d240
mov eax, dword [ebp + 0xc7c]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x51d2bd
mov ebx, 0x10
jmp 0x51d265
mov edi, dword [esp + 0xfc4]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x51d266
mov cx, word [0x5a5348]
mov word [edi], cx
mov edx, dword [ebp + 0xc7c]
mov eax, dword [ebx + edx]
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x51d283
mov edi, dword [esp + 0xfc4]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x51d296
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 0xc7c]
mov ecx, dword [ebx + eax + 4]
add ebx, 4
test ecx, ecx
jne 0x51d25e
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
jmp 0x51d2d0
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d2d0
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d2e8
mov ecx, dword [esp + 0xfcc]
mov edx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [edx], ecx
pop ebx
add esp, 0xfb0
ret 0x10
mov eax, dword [ebp + 0xc7c]
test eax, eax
je case.0x51aeaf.49
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51d336
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
cmp byte [ebx], 0x20
jne 0x51d348
jmp 0x51d340
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x51d340
cmp byte [ebx], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov eax, dword [esp + 0xfc4]
mov ecx, edi
mov byte [eax], 0
mov byte [ebp + 0x4d4], 0
sub ecx, ebx
mov al, byte [ebx]
mov byte [ebx + ecx], al
inc ebx
test al, al
jne 0x51d377
mov ecx, dword [ebp + 0xc7c]
mov ecx, dword [ecx + 8]
lea edx, [ebp + 0x470]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51d390
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d3a8
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d3c0
jmp 0x51e6f2
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51d3e8
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
cmp byte [ebx], 0x20
jne 0x51d3f8
lea ecx, [ecx]
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x51d3f0
cmp byte [ebx], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov ecx, dword [esp + 0xfc4]
mov byte [ecx], al
mov ecx, edi
mov byte [ebp + 0x4d4], al
sub ecx, ebx
mov al, byte [ebx]
mov byte [ebx + ecx], al
inc ebx
test al, al
jne 0x51d425
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d440
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d458
jmp 0x51e6f2
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51d480
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
cmp byte [ebx], 0x20
jne 0x51d48d
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x51d485
cmp byte [ebx], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov esi, dword [esp + 0xfc4]
mov ecx, dword [esp + 0x10]
lea edi, [ebp + 0x4d4]
mov byte [esi], al
mov byte [edi], al
sub ecx, ebx
mov edi, edi
mov al, byte [ebx]
mov byte [ebx + ecx], al
inc ebx
test al, al
jne 0x51d4c0
mov ecx, dword [ebp + 0xc88]
call fcn.0042eb00
test eax, eax
je 0x51d4f0
mov eax, dword [ebp + 0xc88]
add eax, 4
mov edx, esi
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x51d4e4
jmp 0x51d53a
mov eax, dword [ebp + 0xc7c]
test eax, eax
je 0x51d53a
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x51d50d
mov edx, esi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51d503
mov ecx, dword [ebp + 0xc7c]
mov edx, dword [ebp + 0x1c44]
mov ecx, dword [ecx + 8]
call fcn.0050fa60
test al, al
je 0x51d53a
mov edx, dword [ebp + 0xc7c]
mov ecx, dword [edx + 8]
mov edx, edi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51d530
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d548
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d560
mov eax, dword [esp + 0xfcc]
mov ecx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0xfb0
ret 0x10
mov eax, dword [ebp + 0xc7c]
test eax, eax
je case.0x51aeaf.49
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51d5ae
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
mov eax, dword [ebp + 0x404]
test eax, eax
je 0x51d5c7
mov ecx, ebp
call fcn.0051ac20
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
mov esi, eax
test esi, esi
je case.0x51aeaf.49
mov edx, dword [ebp + 0xc7c]
mov edx, dword [edx + 8]
push ebp
mov ecx, ebx
call fcn.0051a7f0
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, esi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov edi, dword [esp + 0xfc4]
mov edx, dword [esp + 0x10]
mov byte [edi], al
mov byte [ebp + 0x4d4], al
mov eax, esi
sub edx, esi
jmp 0x51d620
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51d620
mov eax, dword [ebp + 0xc7c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x51d6bd
mov edx, edi
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51d640
mov ecx, dword [ebp + 0xc7c]
mov eax, dword [ecx + 0x10]
test eax, eax
je 0x51d6bd
mov ebx, 0x10
jmp 0x51d665
mov edi, dword [esp + 0xfc4]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x51d666
mov dx, word [0x5a5348]
mov word [edi], dx
mov eax, dword [ebp + 0xc7c]
mov eax, dword [ebx + eax]
mov ecx, eax
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x51d683
mov edi, dword [esp + 0xfc4]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x51d696
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0xc7c]
mov eax, dword [ebx + ecx + 4]
add ebx, 4
test eax, eax
jne 0x51d65e
mov eax, dword [ebp + 0xc7c]
mov edx, dword [ebp + 0x1c44]
mov ecx, dword [eax + 8]
call fcn.0050fa60
test al, al
je 0x51d6ee
mov ecx, dword [ebp + 0xc7c]
mov ecx, dword [ecx + 8]
lea edx, [ebp + 0x4d4]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51d6e4
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d700
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d718
jmp 0x51e6f2
mov eax, dword [ebp + 0xc7c]
test eax, eax
je case.0x51aeaf.49
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51d74e
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
mov eax, dword [ebp + 0x404]
test eax, eax
je 0x51d767
mov ecx, ebp
call fcn.0051ac20
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
mov esi, eax
test esi, esi
je case.0x51aeaf.49
mov ecx, dword [ebp + 0xc7c]
mov edx, dword [ecx + 8]
push ebp
mov ecx, ebx
call fcn.0051a7f0
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, esi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov edi, dword [esp + 0xfc4]
mov edx, dword [esp + 0x10]
mov byte [edi], al
lea ebx, [ebp + 0x4d4]
mov byte [ebx], al
mov eax, esi
sub edx, esi
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51d7c0
mov edx, dword [ebp + 0xc7c]
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x51d7ea
mov edx, edi
lea esp, [esp]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51d7e0
mov eax, dword [ebp + 0xc7c]
mov edx, dword [ebp + 0x1c44]
mov ecx, dword [eax + 8]
call fcn.0050fa60
test al, al
je 0x51d81a
mov ecx, dword [ebp + 0xc7c]
mov ecx, dword [ecx + 8]
mov edx, ebx
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51d810
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d828
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d840
jmp 0x51e6f2
mov eax, dword [ebp + 0xc7c]
test eax, eax
je case.0x51aeaf.49
cmp byte [ebx], 0x20
jne 0x51d86a
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x51d862
cmp byte [ebx], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov edx, dword [esp + 0xfc4]
mov ecx, edi
mov byte [edx], al
mov byte [ebp + 0x4d4], al
sub ecx, ebx
mov al, byte [ebx]
mov byte [ebx + ecx], al
inc ebx
test al, al
jne 0x51d897
mov ecx, dword [ebp + 0xc7c]
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x51d8ba
mov edi, edi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51d8b0
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d8c8
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d8e0
jmp 0x51e6f2
cmp byte [ebx], 0x20
jne 0x51d8fc
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x51d8f4
cmp byte [ebx], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov ecx, dword [esp + 0xfc4]
mov byte [ecx], al
mov ecx, edi
mov byte [ebp + 0x4d4], al
sub ecx, ebx
lea esp, [esp]
mov al, byte [ebx]
mov byte [ebx + ecx], al
inc ebx
test al, al
jne 0x51d930
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d948
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d960
jmp 0x51e6f2
mov eax, dword [ebp + 0xc7c]
test eax, eax
je case.0x51aeaf.49
cmp byte [ebx], 0x20
jne 0x51d98a
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x51d982
cmp byte [ebx], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov edx, dword [esp + 0xfc4]
mov ecx, edi
mov byte [edx], al
mov byte [ebp + 0x4d4], al
sub ecx, ebx
mov al, byte [ebx]
mov byte [ebx + ecx], al
inc ebx
test al, al
jne 0x51d9b7
mov ecx, dword [ebp + 0xc7c]
push ecx
mov ecx, 2
call fcn.005039a0
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d9e0
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51d9f8
jmp 0x51e6f2
mov eax, dword [ebp + 0xc7c]
test eax, eax
je case.0x51aeaf.49
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51da2e
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
cmp byte [ebx], 0x20
jne 0x51da3b
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x51da33
cmp byte [ebx], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov edx, dword [esp + 0xfc4]
mov ecx, edi
mov byte [edx], al
mov byte [ebp + 0x4d4], al
sub ecx, ebx
mov al, byte [ebx]
mov byte [ebx + ecx], al
inc ebx
test al, al
jne 0x51da68
mov ecx, dword [ebp + 0xc7c]
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x51da8a
nop
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51da80
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51da98
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51dab0
jmp 0x51e6f2
mov edx, dword [ebp + 0xc94]
mov ecx, dword [ebp + 0xc90]
call fcn.0052cdb0
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov ecx, ebx
call fcn.0051ad50
mov esi, eax
test esi, esi
je case.0x51aeaf.49
mov al, byte [ebx]
cmp al, 0x24
jne 0x51db1b
cmp byte [ebx + 1], 0x28
jne 0x51db1b
mov ecx, dword [ebp + 0xc90]
push ebp
push ecx
lea edx, [esp + 0x28]
mov ecx, ebx
call fcn.0051a690
jmp 0x51db2c
cmp al, 0x25
jne 0x51db38
push 0
lea edx, [esp + 0x24]
mov ecx, ebx
call fcn.0055d5e0
test eax, eax
je case.0x51aeaf.49
lea ebx, [esp + 0x20]
mov edx, dword [ebp + 0xc90]
push ebp
mov ecx, ebx
call fcn.0051a770
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, esi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
lea ecx, [ebp + 0x80c]
sub ecx, ebx
mov al, byte [ebx]
mov byte [ecx + ebx], al
inc ebx
test al, al
jne 0x51db67
mov edx, dword [esp + 0xfc4]
mov byte [edx], al
mov edx, edi
mov byte [ebp + 0x4d4], al
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51db86
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51dba0
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51dbb8
mov eax, dword [esp + 0xfcc]
mov ecx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0xfb0
ret 0x10
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
test eax, eax
mov dword [esp + 0x14], eax
je case.0x51aeaf.49
lea edi, [ebp + 0xc98]
lea edx, [esp + 0x408]
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51dc05
lea edx, [esp + 0x408]
push 0x20
push edx
call fcn.005912e0
mov esi, eax
add esp, 8
test esi, esi
je 0x51dc41
mov byte [esi], 0
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
jne 0x51dc3a
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x51dc32
cmp byte [esi], 0
jne 0x51dc41
xor esi, esi
mov al, byte [ebx]
cmp al, 0x24
jne 0x51dc5c
cmp byte [ebx + 1], 0x28
jne 0x51dc5c
push ebp
push edi
lea edx, [esp + 0x28]
mov ecx, ebx
call fcn.0051a690
jmp 0x51dc6d
cmp al, 0x25
jne 0x51dc79
push 0
lea edx, [esp + 0x24]
mov ecx, ebx
call fcn.0055d5e0
test eax, eax
je case.0x51aeaf.49
lea ebx, [esp + 0x20]
push ebp
lea edx, [esp + 0x40c]
mov ecx, ebx
call fcn.0051a770
test eax, eax
je case.0x51aeaf.49
mov edi, dword [esp + 0x14]
mov edx, ebp
mov ecx, edi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
lea ecx, [ebp + 0x80c]
sub ecx, ebx
lea ecx, [ecx]
mov al, byte [ebx]
mov byte [ecx + ebx], al
inc ebx
test al, al
jne 0x51dcb0
mov ebx, dword [esp + 0xfc4]
mov edx, dword [esp + 0x10]
mov byte [ebx], al
mov byte [ebp + 0x4d4], al
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51dcd1
test esi, esi
je 0x51dcef
mov edx, ebx
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51dce5
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51dd00
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51dd18
mov eax, dword [esp + 0xfcc]
mov ecx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0xfb0
ret 0x10
mov eax, dword [ebp + 0xc7c]
test eax, eax
je case.0x51aeaf.49
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51dd66
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
mov esi, eax
test esi, esi
je case.0x51aeaf.49
mov al, byte [ebx]
cmp al, 0x24
jne 0x51dd9d
cmp byte [ebx + 1], 0x28
jne 0x51dd9d
mov edx, dword [ebp + 0xc7c]
mov eax, dword [edx + 0xc]
push ebp
push eax
lea edx, [esp + 0x28]
mov ecx, ebx
call fcn.0051a690
jmp 0x51ddae
cmp al, 0x25
jne 0x51ddba
push 0
lea edx, [esp + 0x24]
mov ecx, ebx
call fcn.0055d5e0
test eax, eax
je case.0x51aeaf.49
lea ebx, [esp + 0x20]
mov ecx, dword [ebp + 0xc7c]
mov edx, dword [ecx + 0xc]
push ebp
mov ecx, ebx
call fcn.0051a770
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, esi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
lea ecx, [ebp + 0x80c]
sub ecx, ebx
lea esp, [esp]
mov al, byte [ebx]
mov byte [ecx + ebx], al
inc ebx
test al, al
jne 0x51ddf0
mov ebx, dword [esp + 0xfc4]
mov byte [ebx], al
mov edx, edi
mov byte [ebp + 0x4d4], al
mov eax, esi
sub edx, esi
nop
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51de10
mov edx, dword [ebp + 0xc7c]
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x51de3a
mov edx, ebx
lea esp, [esp]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51de30
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51de48
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51de60
mov eax, dword [esp + 0xfcc]
mov ecx, dword [esp + 0xfc8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0xfb0
ret 0x10
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
test eax, eax
mov dword [esp + 0x14], eax
je case.0x51aeaf.49
mov ecx, dword [ebp + 0x1468]
call fcn.00561000
test eax, eax
je case.0x51aeaf.49
mov cl, byte [ebx]
cmp cl, 0x23
lea edi, [eax + 8]
mov esi, edi
jne 0x51dec4
cmp dword [eax + 0x71c], 1
jmp 0x51df33
cmp cl, 0x3f
jne 0x51deea
mov edx, dword [eax + 0x71c]
mov ecx, 2
cmp edx, ecx
jne case.0x51aeaf.49
cmp dword [eax + 0x720], ecx
jg case.0x51aeaf.49
jmp 0x51df39
cmp cl, 0x3d
jne 0x51df0b
cmp dword [eax + 0x71c], 2
jne case.0x51aeaf.49
cmp dword [eax + 0x720], 3
jne case.0x51aeaf.49
jmp 0x51df3d
cmp cl, 0x21
jne 0x51df2c
cmp dword [eax + 0x71c], 2
jne case.0x51aeaf.49
cmp dword [eax + 0x720], 4
jne case.0x51aeaf.49
jmp 0x51df3d
cmp cl, 0x40
jne 0x51df39
cmp byte [edi], cl
jne case.0x51aeaf.49
test esi, esi
jne 0x51df60
mov al, byte [ebx + 1]
test al, al
je 0x51df45
inc ebx
push 0x20
push edi
call fcn.005912e0
mov esi, eax
add esp, 8
test esi, esi
je 0x51df5e
inc esi
je 0x51df5e
cmp byte [esi], 0
jne 0x51df60
mov esi, edi
push ebp
mov edx, esi
mov ecx, ebx
call fcn.0051a770
test eax, eax
jne 0x51df80
push ebp
mov edx, esi
mov ecx, ebx
call fcn.0051a7f0
test eax, eax
je case.0x51aeaf.49
mov edi, dword [esp + 0x14]
mov edx, ebp
mov ecx, edi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
lea ecx, [ebp + 0x80c]
sub ecx, ebx
lea ecx, [ecx]
mov al, byte [ebx]
mov byte [ecx + ebx], al
inc ebx
test al, al
jne 0x51dfa0
mov esi, dword [esp + 0xfc4]
mov edx, dword [esp + 0x10]
mov byte [esi], al
mov byte [ebp + 0x4d4], al
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51dfc1
lea eax, [ebp + 0xc98]
mov edx, esi
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51dfd5
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51dff0
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51e008
jmp 0x51e6f2
mov eax, dword [ebp + 0xc7c]
test eax, eax
je case.0x51aeaf.49
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51e03e
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
mov eax, dword [ebp + 0x404]
test eax, eax
je 0x51e057
mov ecx, ebp
call fcn.0051ac20
test eax, eax
je case.0x51aeaf.49
push 0x3a
push ebx
call fcn.005912e0
mov esi, eax
add esp, 8
test esi, esi
je case.0x51aeaf.49
mov byte [esi], 0
mov al, byte [ebx]
cmp al, 0x24
jne 0x51e093
cmp byte [ebx + 1], 0x28
jne 0x51e093
mov ecx, dword [ebp + 0xc7c]
mov edx, dword [ecx + 0xc]
push ebp
push edx
lea edx, [esp + 0x28]
mov ecx, ebx
call fcn.0051a690
jmp 0x51e0a4
cmp al, 0x25
jne 0x51e0b0
push 0
lea edx, [esp + 0x24]
mov ecx, ebx
call fcn.0055d5e0
test eax, eax
je case.0x51aeaf.49
lea ebx, [esp + 0x20]
mov eax, dword [ebp + 0xc7c]
mov edx, dword [eax + 0xc]
push ebp
mov ecx, ebx
call fcn.0051a770
test eax, eax
je case.0x51aeaf.49
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
jne 0x51e0d9
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x51e0d1
cmp byte [esi], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, esi
call fcn.0051ad50
mov edi, eax
test edi, edi
je case.0x51aeaf.49
mov ecx, dword [ebp + 0xc7c]
mov edx, dword [ecx + 8]
push ebp
mov ecx, esi
call fcn.0051a7f0
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, edi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
lea ecx, [ebp + 0x80c]
sub ecx, ebx
mov al, byte [ebx]
mov byte [ecx + ebx], al
inc ebx
test al, al
jne 0x51e127
mov ebx, dword [esp + 0xfc4]
mov edx, dword [esp + 0x10]
mov byte [ebx], al
lea esi, [ebp + 0x4d4]
mov byte [esi], al
mov eax, edi
sub edx, edi
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51e150
mov edx, dword [ebp + 0xc7c]
mov ecx, dword [edx + 0xc]
mov edx, ebx
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51e165
mov eax, dword [ebp + 0xc7c]
mov edx, dword [ebp + 0x1c44]
mov ecx, dword [eax + 8]
call fcn.0050fa60
test al, al
je 0x51e19c
mov ecx, dword [ebp + 0xc7c]
mov ecx, dword [ecx + 8]
mov edx, esi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51e192
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51e1b0
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51e1c8
jmp 0x51e6f2
mov eax, dword [ebp + 0xc7c]
test eax, eax
je case.0x51aeaf.49
mov eax, dword [ebp + 0x400]
test eax, eax
je 0x51e1fe
mov ecx, ebp
call fcn.0051abd0
test eax, eax
jne case.0x51aeaf.49
mov eax, dword [ebp + 0x404]
test eax, eax
je 0x51e217
mov ecx, ebp
call fcn.0051ac20
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
mov esi, eax
test esi, esi
je case.0x51aeaf.49
mov ecx, dword [ebp + 0xc7c]
mov edx, dword [ecx + 8]
push ebp
mov ecx, ebx
call fcn.0051a7f0
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, esi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov edi, dword [esp + 0xfc4]
mov edx, dword [esp + 0x10]
mov byte [edi], al
lea ebx, [ebp + 0x4d4]
mov byte [ebx], al
mov eax, esi
sub edx, esi
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51e270
mov edx, dword [ebp + 0xc7c]
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x51e29a
mov edx, edi
lea esp, [esp]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51e290
mov eax, dword [ebp + 0xc7c]
mov edx, dword [ebp + 0x1c44]
mov ecx, dword [eax + 8]
call fcn.0050fa60
test al, al
je 0x51e2ca
mov ecx, dword [ebp + 0xc7c]
mov ecx, dword [ecx + 8]
mov edx, ebx
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51e2c0
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51e2d8
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51e2f0
jmp 0x51e6f2
mov eax, dword [ebp + 0xc7c]
test eax, eax
je case.0x51aeaf.49
cmp byte [ebx], 0x20
jne 0x51e31a
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x51e312
cmp byte [ebx], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov edx, dword [esp + 0xfc4]
mov ecx, edi
mov byte [edx], al
mov byte [ebp + 0x4d4], al
sub ecx, ebx
mov al, byte [ebx]
mov byte [ebx + ecx], al
inc ebx
test al, al
jne 0x51e347
mov ecx, dword [ebp + 0xc7c]
mov ecx, dword [ecx + 0xc]
test ecx, ecx
je 0x51e36a
mov edi, edi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51e360
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51e378
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51e390
jmp 0x51e6f2
cmp byte [ebx], 0x20
jne 0x51e3ac
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x20
je 0x51e3a4
cmp byte [ebx], 0
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
mov ecx, dword [esp + 0xfc4]
mov byte [ecx], al
mov ecx, edi
mov byte [ebp + 0x4d4], al
sub ecx, ebx
lea esp, [esp]
mov al, byte [ebx]
mov byte [ebx + ecx], al
inc ebx
test al, al
jne 0x51e3e0
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51e3f8
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51e410
jmp 0x51e6f2
mov eax, dword [ebp + 0x1468]
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
mov edi, eax
test edi, edi
je case.0x51aeaf.49
lea edx, [ebp + 0xc98]
push ebp
mov ecx, ebx
call fcn.0051a770
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, edi
call fcn.0051ad50
test eax, eax
mov dword [esp + 0x18], eax
je case.0x51aeaf.49
mov ecx, dword [ebp + 0x1468]
call fcn.00561000
test eax, eax
je case.0x51aeaf.49
mov cl, byte [edi]
cmp cl, 0x23
lea esi, [eax + 8]
mov dword [esp + 0x14], esi
jne 0x51e495
cmp dword [eax + 0x71c], 1
jmp 0x51e504
cmp cl, 0x3f
jne 0x51e4bb
mov edx, dword [eax + 0x71c]
mov ecx, 2
cmp edx, ecx
jne case.0x51aeaf.49
cmp dword [eax + 0x720], ecx
jg case.0x51aeaf.49
jmp 0x51e50a
cmp cl, 0x3d
jne 0x51e4dc
cmp dword [eax + 0x71c], 2
jne case.0x51aeaf.49
cmp dword [eax + 0x720], 3
jne case.0x51aeaf.49
jmp 0x51e50e
cmp cl, 0x21
jne 0x51e4fd
cmp dword [eax + 0x71c], 2
jne case.0x51aeaf.49
cmp dword [eax + 0x720], 4
jne case.0x51aeaf.49
jmp 0x51e50e
cmp cl, 0x40
jne 0x51e50a
cmp byte [esi], cl
jne case.0x51aeaf.49
test esi, esi
jne 0x51e537
mov al, byte [edi + 1]
test al, al
je 0x51e516
inc edi
mov ecx, dword [esp + 0x14]
push 0x20
push ecx
call fcn.005912e0
mov esi, eax
add esp, 8
test esi, esi
je 0x51e533
inc esi
je 0x51e533
cmp byte [esi], 0
jne 0x51e537
mov esi, dword [esp + 0x14]
push ebp
mov edx, esi
mov ecx, edi
call fcn.0051a770
test eax, eax
jne 0x51e557
push ebp
mov edx, esi
mov ecx, edi
call fcn.0051a7f0
test eax, eax
je case.0x51aeaf.49
mov edi, dword [esp + 0x18]
mov edx, ebp
mov ecx, edi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
lea ecx, [ebp + 0x80c]
sub ecx, ebx
mov al, byte [ebx]
mov byte [ecx + ebx], al
inc ebx
test al, al
jne 0x51e574
mov esi, dword [esp + 0xfc4]
mov edx, dword [esp + 0x10]
mov byte [esi], al
mov byte [ebp + 0x4d4], al
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51e595
lea eax, [ebp + 0xc98]
mov edx, esi
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51e5b0
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51e5c8
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51e5e0
jmp 0x51e6f2
mov eax, dword [ebp + 0xc7c]
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, ebx
call fcn.0051ad50
mov esi, eax
test esi, esi
je case.0x51aeaf.49
mov al, byte [ebx]
cmp al, 0x24
jne 0x51e634
cmp byte [ebx + 1], 0x28
jne 0x51e634
mov ecx, dword [ebp + 0xc7c]
mov edx, dword [ecx + 8]
push ebp
push edx
lea edx, [esp + 0x28]
mov ecx, ebx
call fcn.0051a690
jmp 0x51e645
cmp al, 0x25
jne 0x51e651
push 0
lea edx, [esp + 0x24]
mov ecx, ebx
call fcn.0055d5e0
test eax, eax
je case.0x51aeaf.49
lea ebx, [esp + 0x20]
mov eax, dword [ebp + 0xc7c]
mov edx, dword [eax + 8]
push ebp
mov ecx, ebx
call fcn.0051a770
test eax, eax
je case.0x51aeaf.49
mov edx, ebp
mov ecx, esi
call fcn.0051ace0
test eax, eax
jne case.0x51aeaf.49
lea ecx, [ebp + 0x80c]
sub ecx, ebx
mov al, byte [ebx]
mov byte [ecx + ebx], al
inc ebx
test al, al
jne 0x51e683
mov ebx, dword [esp + 0xfc4]
mov byte [ebx], al
mov edx, edi
mov byte [ebp + 0x4d4], al
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51e6a2
mov ecx, dword [ebp + 0xc7c]
mov ecx, dword [ecx + 8]
mov edx, ebx
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51e6b7
lea eax, [ebp + 0x776]
lea edx, [ebp + 0x7da]
sub edx, eax
nop
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51e6d0
lea eax, [ebp + 0x744]
lea edx, [ebp + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51e6e8
mov edx, dword [esp + 0xfcc]
mov eax, dword [esp + 0xfc8]
mov dword [eax], edx
pop esi
pop edi
pop ebp
pop ebx
add esp, 0xfb0
ret 0x10