Function at 0x509a90
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x7e0
push ebx
push ebp
push edi
mov edi, edx
mov ebp, ecx
mov edx, 0x3e7
lea ecx, [esp + 0x1c]
mov dword [esp + 0xc], edi
call fcn.0041ef30
mov edx, 0x3e7
lea ecx, [esp + 0x404]
call fcn.0041ef30
mov ebx, dword [esp + 0x7fc]
mov eax, dword [ebx + 0x3f0]
dec eax
cmp eax, 0x4c
ja case.default.0x509adf
movzx eax, byte [eax + 0x50d310]
push esi
jmp dword [eax*4 + 0x50d250]
mov edx, ebx
mov ecx, ebp
call fcn.00509980
mov edi, eax
test edi, edi
mov dword [esp + 0x14], edi
je case.0x509adf.48
mov eax, dword [ebx + 0xc7c]
test eax, eax
mov dword [esp + 0x18], 2
mov byte [esp + 0x408], 0
je 0x509bdd
add eax, 8
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx]
test edx, edx
je 0x509bdd
lea ecx, [esp + 0x408]
lea esi, [ecx + 1]
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x509b40
sub ecx, esi
mov eax, edx
mov esi, ecx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x509b50
sub eax, edx
add eax, esi
cmp eax, 0x3e7
ja 0x509bdd
cmp dword [esp + 0x18], 2
jle 0x509b83
lea edi, [esp + 0x408]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x509b71
mov dx, word [0x5842b8]
mov word [edi], dx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov esi, eax
jmp 0x509b90
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x509b90
lea edi, [esp + 0x408]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x509ba1
mov edx, dword [esp + 0x18]
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebx + 0xc7c]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
inc edx
add ecx, 4
test eax, eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ecx
jne 0x509b22
mov al, byte [ebp]
cmp al, 0x24
jne 0x509c00
cmp byte [ebp + 1], 0x28
jne 0x509c00
push ebx
lea ecx, [esp + 0x40c]
push ecx
lea edx, [esp + 0x28]
mov ecx, ebp
call fcn.00509280
jmp 0x509c11
cmp al, 0x25
jne 0x509c1d
push 0
lea edx, [esp + 0x24]
mov ecx, ebp
call fcn.0053f280
test eax, eax
je case.0x509adf.48
lea ebp, [esp + 0x20]
push ebx
lea edx, [esp + 0x40c]
mov ecx, ebp
call fcn.00509360
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, edi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
lea ecx, [ebx + 0x80c]
sub ecx, ebp
lea ecx, [ecx]
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x509c50
mov esi, dword [esp + 0x7f4]
mov edx, dword [esp + 0x10]
mov byte [esi], al
mov byte [ebx + 0x4d4], al
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x509c72
mov edx, esi
lea ecx, [esp + 0x408]
lea eax, [esp + 0x408]
sub edx, ecx
mov edi, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x509c90
mov eax, 0x31
lea edx, [ebx + 8]
push edx
mov word [ebx + 0x7da], ax
mov word [ebx + 0x7a8], ax
call fcn.005705cb
mov ecx, dword [esp + 0x7fc]
add esp, 4
pop esi
mov dword [ebx + 0x3f4], eax
mov eax, dword [esp + 0x7f8]
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
mov eax, dword [ebx + 0xc7c]
test eax, eax
je case.0x509adf.48
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x509d03
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
mov eax, dword [ebx + 0x404]
test eax, eax
je 0x509d1c
mov ecx, ebx
call fcn.00509850
test eax, eax
je case.0x509adf.48
movzx edx, byte [ebp]
push edx
push 0x58a4a8
call fcn.00570260
add esp, 8
test eax, eax
je 0x509d5c
mov edx, ebx
mov ecx, ebp
call fcn.00509980
mov esi, eax
test esi, esi
je 0x509d5c
mov eax, dword [ebx + 0xc7c]
mov edx, dword [eax + 8]
push ebx
mov ecx, ebp
call fcn.005093c0
test eax, eax
je case.0x509adf.48
mov ebp, esi
mov edx, ebx
mov ecx, ebp
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov edx, dword [esp + 0x7f4]
lea esi, [ebx + 0x4d4]
mov ecx, edi
mov byte [edx], al
mov byte [esi], al
sub ecx, ebp
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x509d82
mov cl, byte [ebx + 8]
cmp cl, 0x20
lea eax, [ebx + 8]
jne 0x509da1
mov cl, byte [eax + 1]
inc eax
cmp cl, 0x20
je 0x509d98
cmp byte [eax], 0
je 0x509db2
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x509da8
mov ecx, dword [ebx + 0xc7c]
mov edx, dword [ebx + 0x1c40]
mov ecx, dword [ecx + 8]
call fcn.004ff610
test al, al
je 0x509ddf
mov edx, dword [ebx + 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 0x509dd5
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x509df0
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x509e08
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
cmp byte [ebp], 0x20
jne 0x509e3d
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x20
je 0x509e35
cmp byte [ebp], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov edx, dword [esp + 0x7f4]
mov ecx, edi
mov byte [edx], al
mov byte [ebx + 0x4d4], al
sub ecx, ebp
jmp 0x509e70
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x509e70
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x509e90
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x509ea8
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
mov eax, dword [ebx + 0xc7c]
test eax, eax
je case.0x509adf.48
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x509ef6
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
mov eax, dword [ebx + 0x404]
test eax, eax
je 0x509f0f
mov ecx, ebx
call fcn.00509850
test eax, eax
je case.0x509adf.48
push 0x3a
push ebp
call fcn.00570260
mov esi, eax
add esp, 8
test esi, esi
je case.0x509adf.48
mov byte [esi], 0
mov al, byte [ebp]
cmp al, 0x24
jne 0x509f4c
cmp byte [ebp + 1], 0x28
jne 0x509f4c
mov edx, dword [ebx + 0xc7c]
mov eax, dword [edx + 0xc]
push ebx
push eax
lea edx, [esp + 0x28]
mov ecx, ebp
call fcn.00509280
jmp 0x509f5d
cmp al, 0x25
jne 0x509f69
push 0
lea edx, [esp + 0x24]
mov ecx, ebp
call fcn.0053f280
test eax, eax
je case.0x509adf.48
lea ebp, [esp + 0x20]
mov ecx, dword [ebx + 0xc7c]
mov edx, dword [ecx + 0xc]
push ebx
mov ecx, ebp
call fcn.00509360
test eax, eax
je case.0x509adf.48
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
jne 0x509f98
lea ebx, [ebx]
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x509f90
cmp byte [esi], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, esi
call fcn.00509980
mov edi, eax
test edi, edi
je case.0x509adf.48
mov edx, dword [ebx + 0xc7c]
mov edx, dword [edx + 8]
push ebx
mov ecx, esi
call fcn.005093c0
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, edi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
lea ecx, [ebx + 0x80c]
sub ecx, ebp
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x509fe6
mov ebp, dword [esp + 0x7f4]
mov edx, dword [esp + 0x10]
mov byte [ebp], al
lea esi, [ebx + 0x4d4]
mov byte [esi], al
mov eax, edi
sub edx, edi
jmp 0x50a010
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50a010
mov eax, dword [ebx + 0xc7c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x50a03a
mov edx, ebp
lea esp, [esp]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50a030
mov ecx, dword [ebx + 0xc7c]
mov edx, dword [ebx + 0x1c40]
mov ecx, dword [ecx + 8]
call fcn.004ff610
test al, al
je 0x50a06a
mov edx, dword [ebx + 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 0x50a060
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50a078
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50a090
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
mov edx, ebx
mov ecx, ebp
call fcn.00509980
test eax, eax
mov dword [esp + 0x14], eax
je case.0x509adf.48
mov ecx, dword [ebx + 0x1468]
call fcn.00542c90
test eax, eax
je case.0x509adf.48
mov cl, byte [ebp]
cmp cl, 0x23
lea edi, [eax + 8]
mov esi, edi
jne 0x50a0f5
cmp dword [eax + 0x708], 1
jmp 0x50a164
cmp cl, 0x3f
jne 0x50a11b
mov edx, dword [eax + 0x708]
mov ecx, 2
cmp edx, ecx
jne case.0x509adf.48
cmp dword [eax + 0x70c], ecx
jg case.0x509adf.48
jmp 0x50a16a
cmp cl, 0x3d
jne 0x50a13c
cmp dword [eax + 0x708], 2
jne case.0x509adf.48
cmp dword [eax + 0x70c], 3
jne case.0x509adf.48
jmp 0x50a16e
cmp cl, 0x21
jne 0x50a15d
cmp dword [eax + 0x708], 2
jne case.0x509adf.48
cmp dword [eax + 0x70c], 4
jne case.0x509adf.48
jmp 0x50a16e
cmp cl, 0x40
jne 0x50a16a
cmp byte [edi], cl
jne case.0x509adf.48
test esi, esi
jne 0x50a191
mov al, byte [ebp + 1]
test al, al
je 0x50a176
inc ebp
push 0x20
push edi
call fcn.00570260
mov esi, eax
add esp, 8
test esi, esi
je 0x50a18f
inc esi
je 0x50a18f
cmp byte [esi], 0
jne 0x50a191
mov esi, edi
push ebx
mov edx, esi
mov ecx, ebp
call fcn.00509360
test eax, eax
jne 0x50a1b1
push ebx
mov edx, esi
mov ecx, ebp
call fcn.005093c0
test eax, eax
je case.0x509adf.48
mov esi, dword [esp + 0x14]
mov edx, ebx
mov ecx, esi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
lea ecx, [ebx + 0x80c]
sub ecx, ebp
mov edi, edi
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50a1d0
mov edx, dword [esp + 0x7f4]
mov byte [edx], al
mov edx, dword [esp + 0x10]
mov byte [ebx + 0x4d4], al
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50a1f2
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50a210
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50a228
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
cmp byte [ebp], 0x20
jne 0x50a25d
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x20
je 0x50a255
cmp byte [ebp], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov edx, dword [esp + 0x7f4]
mov ecx, edi
mov byte [edx], al
mov byte [ebx + 0x4d4], al
sub ecx, ebp
jmp 0x50a290
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50a290
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50a2b0
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50a2c8
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
cmp byte [ebp], 0x20
jne 0x50a2fd
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x20
je 0x50a2f5
cmp byte [ebp], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov edx, dword [esp + 0x7f4]
mov ecx, edi
mov byte [edx], al
mov byte [ebx + 0x4d4], al
sub ecx, ebp
jmp 0x50a330
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50a330
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50a350
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50a368
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
mov ecx, dword [ebx + 0xc88]
call fcn.0042c530
test eax, eax
je case.0x509adf.48
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x50a3bb
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509980
mov esi, eax
test esi, esi
je case.0x509adf.48
mov al, byte [ebp]
cmp al, 0x24
jne 0x50a3f3
cmp byte [ebp + 1], 0x28
jne 0x50a3f3
mov edx, dword [ebx + 0xc88]
add edx, 4
push ebx
push edx
lea edx, [esp + 0x28]
mov ecx, ebp
call fcn.00509280
jmp 0x50a404
cmp al, 0x25
jne 0x50a410
push 0
lea edx, [esp + 0x24]
mov ecx, ebp
call fcn.0053f280
test eax, eax
je case.0x509adf.48
lea ebp, [esp + 0x20]
mov edx, dword [ebx + 0xc88]
push ebx
add edx, 4
mov ecx, ebp
call fcn.00509360
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, esi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
lea ecx, [ebx + 0x80c]
sub ecx, ebp
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50a442
mov ebp, dword [esp + 0x7f4]
mov byte [ebp], al
mov edx, edi
mov byte [ebx + 0x4d4], al
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50a463
mov eax, dword [ebx + 0xc88]
add eax, 4
mov edx, ebp
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x50a478
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50a490
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50a4a8
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x50a4e8
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov ecx, ebp
call fcn.00509980
mov edi, eax
test edi, edi
je case.0x509adf.48
mov al, byte [ebp]
cmp al, 0x24
jne 0x50a527
cmp byte [ebp + 1], 0x28
jne 0x50a527
push ebx
push 0
lea edx, [esp + 0x28]
mov ecx, ebp
call fcn.00509280
jmp 0x50a538
cmp al, 0x25
jne 0x50a544
push 0
lea edx, [esp + 0x24]
mov ecx, ebp
call fcn.0053f280
test eax, eax
je case.0x509adf.48
lea ebp, [esp + 0x20]
mov ecx, dword [ebx + 0x1468]
call fcn.00542c90
test eax, eax
je 0x50a567
mov ecx, dword [eax + 0x708]
test ecx, ecx
jne 0x50a567
cmp byte [ebp], 0x2a
jne case.0x509adf.48
mov al, byte [ebp]
cmp al, 0x3f
jne 0x50a57d
mov ecx, dword [ebx + 0xc88]
call fcn.0042c530
test eax, eax
jmp 0x50a5fa
cmp al, 0x40
jne 0x50a590
mov ecx, dword [ebx + 0xc88]
call fcn.0042c530
test eax, eax
jmp 0x50a5fa
cmp al, 0x3d
jne 0x50a5bd
mov ecx, dword [ebx + 0xc88]
call fcn.0042c530
test eax, eax
je case.0x509adf.48
mov edx, dword [ebx + 0xc88]
mov eax, dword [edx + 0x540]
test eax, eax
jne case.0x509adf.48
jmp 0x50a5e8
cmp al, 0x21
jne 0x50a5f8
mov ecx, dword [ebx + 0xc88]
call fcn.0042c530
test eax, eax
je case.0x509adf.48
mov eax, dword [ebx + 0xc88]
mov ecx, dword [eax + 0x540]
test ecx, ecx
je case.0x509adf.48
mov al, byte [ebp + 1]
inc ebp
test al, al
je 0x50a626
lea edx, [ebx + 0x40c]
jmp 0x50a616
cmp al, 0x2a
jne case.0x509adf.48
lea esi, [ebx + 0x40c]
mov ecx, ebp
mov edx, esi
push ebx
call fcn.00509360
test eax, eax
jne 0x50a626
mov edx, esi
mov ecx, ebp
push ebx
call fcn.005093c0
test eax, eax
je case.0x509adf.48
mov eax, dword [ebx + 0x1468]
test eax, eax
jne 0x50a69c
mov eax, dword [ebx + 0xc7c]
test eax, eax
je 0x50a69c
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x50a69c
push 0x3a
push edi
call fcn.00570260
mov esi, eax
add esp, 8
test esi, esi
je 0x50a69c
mov byte [esi], 0
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
jne 0x50a668
lea ecx, [ecx]
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x50a660
cmp byte [esi], 0
je case.0x509adf.48
mov ecx, dword [ebx + 0xc7c]
mov edx, dword [ecx + 0xc]
push ebx
mov ecx, edi
call fcn.00509360
test eax, eax
je case.0x509adf.48
mov edx, ebp
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50a690
mov edi, esi
mov edx, ebx
mov ecx, edi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
lea ecx, [ebx + 0x80c]
sub ecx, ebp
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50a6b5
mov esi, dword [esp + 0x7f4]
mov edx, dword [esp + 0x10]
mov byte [esi], al
mov byte [ebx + 0x4d4], al
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50a6d7
mov eax, dword [ebx + 0x1468]
test eax, eax
jne 0x50a70a
mov eax, dword [ebx + 0xc7c]
test eax, eax
je 0x50a70a
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x50a70a
mov edx, esi
mov edi, edi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50a700
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50a718
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50a730
mov edx, dword [esp + 0x7fc]
mov eax, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [eax], edx
pop ebx
add esp, 0x7e0
ret 0x10
cmp byte [ebp], 0x20
jne 0x50a768
lea ecx, [ecx]
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x20
je 0x50a760
cmp byte [ebp], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov ecx, dword [esp + 0x7f4]
mov byte [ecx], al
mov ecx, edi
mov byte [ebx + 0x4d4], al
sub ecx, ebp
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50a796
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
nop
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50a7b0
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50a7c8
mov edx, dword [esp + 0x7fc]
mov eax, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [eax], edx
pop ebx
add esp, 0x7e0
ret 0x10
cmp byte [ebp], 0x20
jne 0x50a7fd
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x20
je 0x50a7f5
cmp byte [ebp], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov edx, dword [esp + 0x7f4]
mov ecx, edi
mov byte [edx], al
mov byte [ebx + 0x4d4], al
sub ecx, ebp
jmp 0x50a830
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50a830
lea eax, [ebx + 0xc98]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50a843
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
jmp 0x50a860
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50a860
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50a878
jmp 0x50d232
mov eax, dword [ebx + 0xc7c]
test eax, eax
je case.0x509adf.48
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x50a8ae
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509980
mov esi, eax
test esi, esi
je case.0x509adf.48
mov al, byte [ebp]
cmp al, 0x24
jne 0x50a8e6
cmp byte [ebp + 1], 0x28
jne 0x50a8e6
mov eax, dword [ebx + 0xc7c]
mov ecx, dword [eax + 0xc]
push ebx
push ecx
lea edx, [esp + 0x28]
mov ecx, ebp
call fcn.00509280
jmp 0x50a8f7
cmp al, 0x25
jne 0x50a903
push 0
lea edx, [esp + 0x24]
mov ecx, ebp
call fcn.0053f280
test eax, eax
je case.0x509adf.48
lea ebp, [esp + 0x20]
mov edx, dword [ebx + 0xc7c]
mov edx, dword [edx + 0xc]
push ebx
mov ecx, ebp
call fcn.00509360
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, esi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
lea ecx, [ebx + 0x80c]
sub ecx, ebp
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50a935
mov edi, dword [esp + 0x7f4]
mov edx, dword [esp + 0x10]
mov byte [edi], al
lea ebp, [ebx + 0x4d4]
mov byte [ebp], al
mov eax, esi
sub edx, esi
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50a960
mov eax, dword [ebx + 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 0x50a975
mov ecx, dword [ebx + 0xc7c]
mov edx, dword [ebx + 0x1c40]
mov ecx, dword [ecx + 8]
call fcn.004ff610
test al, al
je 0x50a9ac
mov edx, dword [ebx + 0xc7c]
mov ecx, dword [edx + 8]
mov edx, ebp
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50a9a2
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50a9c0
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50a9d8
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x50aa18
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
mov ecx, dword [ebx + 0xc88]
call fcn.0042c530
test eax, eax
jne 0x50aa3a
mov ecx, dword [ebx + 0xc84]
call fcn.0048f680
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509980
mov esi, eax
test esi, esi
je case.0x509adf.48
mov ecx, dword [ebx + 0xc88]
call fcn.0042c530
test eax, eax
je 0x50aab1
mov edx, dword [ebx + 0xc88]
mov eax, dword [edx + 0x540]
test eax, eax
je 0x50aa96
mov eax, dword [str.FSERVE]
mov cx, word [0x58a4a4]
mov dl, byte [0x58a4a6]
mov dword [esp + 0x408], eax
mov word [esp + 0x40c], cx
mov byte [esp + 0x40e], dl
jmp 0x50aad9
mov eax, dword [str.CHAT]
mov cl, byte [0x584c34]
mov dword [esp + 0x408], eax
mov byte [esp + 0x40c], cl
jmp 0x50aad9
mov ecx, dword [ebx + 0xc84]
call fcn.0048f680
test eax, eax
je 0x50aad9
mov edx, dword [str.SEND]
mov al, byte [0x58a49c]
mov dword [esp + 0x408], edx
mov byte [esp + 0x40c], al
mov al, byte [ebp]
cmp al, 0x24
jne 0x50aaf6
cmp byte [ebp + 1], 0x28
jne 0x50aaf6
push ebx
push 0
lea edx, [esp + 0x28]
mov ecx, ebp
call fcn.00509280
jmp 0x50ab07
cmp al, 0x25
jne 0x50ab13
push 0
lea edx, [esp + 0x24]
mov ecx, ebp
call fcn.0053f280
test eax, eax
je case.0x509adf.48
lea ebp, [esp + 0x20]
push ebx
lea edx, [esp + 0x40c]
mov ecx, ebp
call fcn.00509360
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, esi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
lea ecx, [ebx + 0x80c]
sub ecx, ebp
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50ab43
mov ecx, dword [esp + 0x7f4]
mov byte [ecx], al
mov edx, edi
mov byte [ebx + 0x4d4], al
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50ab63
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
jmp 0x50ab80
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50ab80
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50ab98
mov edx, dword [esp + 0x7fc]
mov eax, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [eax], edx
pop ebx
add esp, 0x7e0
ret 0x10
mov ecx, dword [ebx + 0xc58]
call fcn.00459920
test eax, eax
je case.0x509adf.48
push 0x3a
push ebp
call fcn.00570260
mov esi, eax
add esp, 8
test esi, esi
je case.0x509adf.48
push ebx
lea edx, [ebx + 0xc98]
mov ecx, ebp
mov byte [esi], 0
call fcn.00509360
test eax, eax
je case.0x509adf.48
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
jne 0x50ac10
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x50ac08
cmp byte [esi], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, esi
call fcn.00509980
mov edi, eax
test edi, edi
je case.0x509adf.48
lea esp, [esp]
push 0x2c
push esi
call fcn.00570260
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x50ac4f
mov byte [ebp], 0
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x50ac4f
xor ebp, ebp
cmp byte [esi], 0x20
jne 0x50ac5c
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x50ac54
push ebx
lea edx, [ebx + 0x107f]
mov ecx, esi
call fcn.00509360
test eax, eax
jne 0x50ac7a
test ebp, ebp
je case.0x509adf.48
mov esi, ebp
jmp 0x50ac30
mov edx, ebx
mov ecx, edi
mov esi, edi
call fcn.00509980
mov edi, eax
test edi, edi
je case.0x509adf.48
nop
push 0x2c
push esi
call fcn.00570260
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x50acaf
mov byte [ebp], 0
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x50acaf
xor ebp, ebp
cmp byte [esi], 0x20
jne 0x50acbc
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x50acb4
cmp byte [esi], 0
je 0x50ace6
push 0x584674
push esi
call fcn.005809c6
add esp, 8
test eax, eax
je 0x50acf2
push esi
call fcn.005705cb
mov ecx, dword [ebx + 0xc5c]
add esp, 4
cmp eax, ecx
je 0x50acf2
test ebp, ebp
je case.0x509adf.48
mov esi, ebp
jmp 0x50ac90
mov edx, ebx
mov ecx, edi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov ecx, dword [esp + 0x7f4]
mov edx, dword [esp + 0x10]
mov byte [ecx], al
mov byte [ebx + 0x4d4], al
mov eax, edi
sub edx, edi
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50ad20
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50ad38
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50ad50
mov edx, dword [esp + 0x7fc]
mov eax, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [eax], edx
pop ebx
add esp, 0x7e0
ret 0x10
cmp byte [ebp], 0x20
jne 0x50ad88
lea ecx, [ecx]
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x20
je 0x50ad80
cmp byte [ebp], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov edx, dword [esp + 0x7f4]
mov ecx, edi
mov byte [edx], al
mov byte [ebx + 0x4d4], al
sub ecx, ebp
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50adb6
mov eax, dword [ebx + 0x1c40]
add eax, 0x1124
lea esp, [esp]
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x50add0
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50ade8
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50ae00
jmp 0x50d232
cmp byte [ebp], 0x20
jne 0x50ae1d
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x20
je 0x50ae15
cmp byte [ebp], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov eax, dword [esp + 0x7f4]
mov ecx, edi
mov byte [eax], 0
mov byte [ebx + 0x4d4], 0
sub ecx, ebp
lea ecx, [ecx]
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50ae50
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50ae70
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50ae88
jmp 0x50d232
mov eax, dword [ebx + 0xc7c]
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509980
mov esi, eax
test esi, esi
je case.0x509adf.48
mov eax, dword [ebx + 0xc7c]
push eax
lea edx, [esp + 0x40c]
xor ecx, ecx
mov byte [esp + 0x40c], 0
call fcn.004f4660
mov al, byte [ebp]
cmp al, 0x24
jne 0x50aef8
cmp byte [ebp + 1], 0x28
jne 0x50aef8
push ebx
lea ecx, [esp + 0x40c]
push ecx
lea edx, [esp + 0x28]
mov ecx, ebp
call fcn.00509280
jmp 0x50af09
cmp al, 0x25
jne 0x50af15
push 0
lea edx, [esp + 0x24]
mov ecx, ebp
call fcn.0053f280
test eax, eax
je case.0x509adf.48
lea ebp, [esp + 0x20]
push ebx
lea edx, [esp + 0x40c]
mov ecx, ebp
call fcn.00509360
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, esi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
lea ecx, [ebx + 0x80c]
sub ecx, ebp
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50af45
mov ebp, dword [esp + 0x7f4]
mov byte [ebp], al
mov edx, edi
mov byte [ebx + 0x4d4], al
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50af66
mov edx, ebp
lea ecx, [esp + 0x408]
lea eax, [esp + 0x408]
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50af82
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50afa0
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50afb8
mov edx, dword [esp + 0x7fc]
mov eax, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [eax], edx
pop ebx
add esp, 0x7e0
ret 0x10
cmp byte [ebp], 0x20
jne 0x50afed
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x20
je 0x50afe5
cmp byte [ebp], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov ecx, dword [esp + 0x7f4]
mov byte [ecx], al
mov ecx, edi
mov byte [ebx + 0x4d4], al
sub ecx, ebp
jmp 0x50b020
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50b020
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50b040
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50b058
mov edx, dword [esp + 0x7fc]
mov eax, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [eax], edx
pop ebx
add esp, 0x7e0
ret 0x10
mov ecx, dword [ebx + 0xc84]
call fcn.0048f680
test eax, eax
je case.0x509adf.48
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x50b0ab
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509980
mov esi, eax
test esi, esi
je case.0x509adf.48
mov al, byte [ebp]
cmp al, 0x24
jne 0x50b0e6
cmp byte [ebp + 1], 0x28
jne 0x50b0e6
mov ecx, dword [ebx + 0xc84]
add ecx, 0x234
push ebx
push ecx
lea edx, [esp + 0x28]
mov ecx, ebp
call fcn.00509280
jmp 0x50b0f7
cmp al, 0x25
jne 0x50b103
push 0
lea edx, [esp + 0x24]
mov ecx, ebp
call fcn.0053f280
test eax, eax
je case.0x509adf.48
lea ebp, [esp + 0x20]
mov edx, dword [ebx + 0xc84]
push ebx
add edx, 0x234
mov ecx, ebp
call fcn.00509680
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, esi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov edx, dword [esp + 0x7f4]
mov byte [edx], al
mov edx, edi
mov byte [ebx + 0x4d4], al
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50b145
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50b160
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50b178
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
mov ecx, dword [ebx + 0xc80]
call fcn.00514a70
test eax, eax
je case.0x509adf.48
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x50b1cb
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509980
mov esi, eax
test esi, esi
je case.0x509adf.48
mov al, byte [ebp]
cmp al, 0x24
jne 0x50b206
cmp byte [ebp + 1], 0x28
jne 0x50b206
mov edx, dword [ebx + 0xc80]
add edx, 0x234
push ebx
push edx
lea edx, [esp + 0x28]
mov ecx, ebp
call fcn.00509280
jmp 0x50b217
cmp al, 0x25
jne 0x50b223
push 0
lea edx, [esp + 0x24]
mov ecx, ebp
call fcn.0053f280
test eax, eax
je case.0x509adf.48
lea ebp, [esp + 0x20]
mov edx, dword [ebx + 0xc80]
push ebx
add edx, 0x234
mov ecx, ebp
call fcn.00509680
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, esi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov eax, dword [esp + 0x7f4]
mov byte [eax], 0
mov edx, edi
mov byte [ebx + 0x4d4], 0
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50b267
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
nop
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50b280
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50b298
jmp 0x50d232
mov eax, dword [ebx + 0x1468]
test eax, eax
je case.0x509adf.48
mov al, byte [ebx + 0x107f]
test al, al
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509980
mov edi, eax
test edi, edi
je case.0x509adf.48
push ebx
lea edx, [ebx + 0x107f]
mov ecx, ebp
call fcn.00509360
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, edi
call fcn.00509980
test eax, eax
mov dword [esp + 0x18], eax
je case.0x509adf.48
mov ecx, dword [ebx + 0x1468]
call fcn.00542c90
test eax, eax
je case.0x509adf.48
mov cl, byte [edi]
cmp cl, 0x23
lea esi, [eax + 8]
mov dword [esp + 0x14], esi
jne 0x50b32b
cmp dword [eax + 0x708], 1
jmp 0x50b39a
cmp cl, 0x3f
jne 0x50b351
mov edx, dword [eax + 0x708]
mov ecx, 2
cmp edx, ecx
jne case.0x509adf.48
cmp dword [eax + 0x70c], ecx
jg case.0x509adf.48
jmp 0x50b3a0
cmp cl, 0x3d
jne 0x50b372
cmp dword [eax + 0x708], 2
jne case.0x509adf.48
cmp dword [eax + 0x70c], 3
jne case.0x509adf.48
jmp 0x50b3a4
cmp cl, 0x21
jne 0x50b393
cmp dword [eax + 0x708], 2
jne case.0x509adf.48
cmp dword [eax + 0x70c], 4
jne case.0x509adf.48
jmp 0x50b3a4
cmp cl, 0x40
jne 0x50b3a0
cmp byte [esi], cl
jne case.0x509adf.48
test esi, esi
jne 0x50b3cd
mov al, byte [edi + 1]
test al, al
je 0x50b3ac
inc edi
mov eax, dword [esp + 0x14]
push 0x20
push eax
call fcn.00570260
mov esi, eax
add esp, 8
test esi, esi
je 0x50b3c9
inc esi
je 0x50b3c9
cmp byte [esi], 0
jne 0x50b3cd
mov esi, dword [esp + 0x14]
push ebx
mov edx, esi
mov ecx, edi
call fcn.00509360
test eax, eax
jne 0x50b3ed
push ebx
mov edx, esi
mov ecx, edi
call fcn.005093c0
test eax, eax
je case.0x509adf.48
mov edi, dword [esp + 0x18]
mov edx, ebx
mov ecx, edi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
lea ecx, [ebx + 0x80c]
mov dword [ebx + 0xc70], 1
sub ecx, ebp
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50b414
mov esi, dword [esp + 0x7f4]
mov edx, dword [esp + 0x10]
mov byte [esi], al
mov byte [ebx + 0x4d4], al
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50b436
lea eax, [ebx + 0x107f]
mov edx, esi
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50b450
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50b468
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50b480
jmp 0x50d232
mov edx, ebx
mov ecx, ebp
call fcn.00509980
test eax, eax
mov dword [esp + 0x14], eax
je case.0x509adf.48
mov ecx, dword [ebx + 0x1468]
call fcn.00542c90
test eax, eax
je case.0x509adf.48
mov cl, byte [ebp]
cmp cl, 0x23
lea edi, [eax + 8]
mov esi, edi
jne 0x50b4cd
cmp dword [eax + 0x708], 1
jmp 0x50b53c
cmp cl, 0x3f
jne 0x50b4f3
mov edx, dword [eax + 0x708]
mov ecx, 2
cmp edx, ecx
jne case.0x509adf.48
cmp dword [eax + 0x70c], ecx
jg case.0x509adf.48
jmp 0x50b542
cmp cl, 0x3d
jne 0x50b514
cmp dword [eax + 0x708], 2
jne case.0x509adf.48
cmp dword [eax + 0x70c], 3
jne case.0x509adf.48
jmp 0x50b546
cmp cl, 0x21
jne 0x50b535
cmp dword [eax + 0x708], 2
jne case.0x509adf.48
cmp dword [eax + 0x70c], 4
jne case.0x509adf.48
jmp 0x50b546
cmp cl, 0x40
jne 0x50b542
cmp byte [edi], cl
jne case.0x509adf.48
test esi, esi
jne 0x50b569
mov al, byte [ebp + 1]
test al, al
je 0x50b54e
inc ebp
push 0x20
push edi
call fcn.00570260
mov esi, eax
add esp, 8
test esi, esi
je 0x50b567
inc esi
je 0x50b567
cmp byte [esi], 0
jne 0x50b569
mov esi, edi
push ebx
mov edx, esi
mov ecx, ebp
call fcn.00509360
test eax, eax
jne 0x50b589
push ebx
mov edx, esi
mov ecx, ebp
call fcn.005093c0
test eax, eax
je case.0x509adf.48
mov edi, dword [esp + 0x14]
mov edx, ebx
mov ecx, edi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
lea ecx, [ebx + 0x80c]
sub ecx, ebp
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50b5a6
mov esi, dword [esp + 0x7f4]
mov edx, dword [esp + 0x10]
mov byte [esi], al
mov byte [ebx + 0x4d4], al
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50b5c8
mov ecx, dword [0x5a7224]
test ecx, ecx
je 0x50b5ea
mov edx, esi
mov edi, edi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50b5e0
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50b5f8
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50b610
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
mov eax, dword [ebx + 0xc7c]
test eax, eax
je case.0x509adf.48
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x50b65e
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509980
mov esi, eax
test esi, esi
je case.0x509adf.48
mov edx, dword [ebx + 0xc7c]
mov edx, dword [edx + 0xc]
push ebx
mov ecx, ebp
call fcn.005093c0
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, esi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov eax, dword [esp + 0x7f4]
mov byte [eax], 0
lea ebp, [ebx + 0x4d4]
mov edx, edi
mov byte [ebp], 0
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50b6b5
mov ecx, dword [ebx + 0xc7c]
mov edx, dword [ebx + 0x1c40]
mov ecx, dword [ecx + 0xc]
call fcn.004ff610
test al, al
je 0x50b6ec
mov edx, dword [ebx + 0xc7c]
mov ecx, dword [edx + 0xc]
mov edx, ebp
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50b6e2
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50b700
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50b718
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
mov eax, dword [ebx + 0xc7c]
test eax, eax
je case.0x509adf.48
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x50b766
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
mov eax, dword [ebx + 0x404]
test eax, eax
je 0x50b77f
mov ecx, ebx
call fcn.00509850
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509980
mov esi, eax
test esi, esi
je case.0x509adf.48
mov edx, dword [ebx + 0xc7c]
mov edx, dword [edx + 8]
push ebx
mov ecx, ebp
call fcn.005093c0
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, esi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov eax, dword [esp + 0x7f4]
mov byte [eax], 0
lea ebp, [ebx + 0x4d4]
mov edx, edi
mov byte [ebp], 0
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50b7d6
mov ecx, dword [ebx + 0xc7c]
mov edx, dword [ebx + 0x1c40]
mov ecx, dword [ecx + 8]
call fcn.004ff610
test al, al
je 0x50b80d
mov edx, dword [ebx + 0xc7c]
mov ecx, dword [edx + 8]
mov edx, ebp
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50b803
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
jmp 0x50b820
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50b820
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50b838
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
mov eax, dword [ebx + 0xc7c]
test eax, eax
je case.0x509adf.48
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x50b886
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
mov eax, dword [ebx + 0x404]
test eax, eax
je 0x50b89f
mov ecx, ebx
call fcn.00509850
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509980
mov esi, eax
test esi, esi
je case.0x509adf.48
mov edx, dword [ebx + 0xc7c]
mov edx, dword [edx + 8]
push ebx
mov ecx, ebp
call fcn.005093c0
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, esi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov edi, dword [esp + 0x7f4]
mov edx, dword [esp + 0x10]
mov byte [edi], al
lea ebp, [ebx + 0x4d4]
mov byte [ebp], al
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50b8f6
mov eax, dword [ebx + 0xc7c]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x50b91a
mov edx, edi
nop
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50b910
mov ecx, dword [ebx + 0xc7c]
mov edx, dword [ebx + 0x1c40]
mov ecx, dword [ecx + 8]
call fcn.004ff610
test al, al
je 0x50b94a
mov edx, dword [ebx + 0xc7c]
mov ecx, dword [edx + 8]
mov edx, ebp
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50b940
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50b958
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50b970
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x50b9b0
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
mov eax, dword [ebx + 0x404]
test eax, eax
je 0x50b9c9
mov ecx, ebx
call fcn.00509850
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509980
mov esi, eax
test esi, esi
je case.0x509adf.48
mov edx, dword [ebx + 0x1c40]
lea ecx, [esp + 0x408]
call fcn.004e3670
push ebx
lea edx, [esp + 0x40c]
mov ecx, ebp
call fcn.00509360
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, esi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov edx, dword [esp + 0x7f4]
mov byte [edx], al
mov edx, edi
mov byte [ebx + 0x4d4], al
mov eax, esi
sub edx, esi
jmp 0x50ba30
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50ba30
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50ba48
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50ba60
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
mov ecx, dword [ebx + 0x1468]
test ecx, ecx
je case.0x509adf.48
call fcn.00542c90
mov edi, eax
test edi, edi
mov dword [esp + 0x18], edi
je case.0x509adf.48
push 0x3a
push ebp
call fcn.00570260
mov esi, eax
add esp, 8
test esi, esi
je case.0x509adf.48
mov byte [esi], 0
mov al, byte [ebp]
cmp al, 0x24
jne 0x50badd
cmp byte [ebp + 1], 0x28
jne 0x50badd
push ebx
push 0
lea edx, [esp + 0x28]
mov ecx, ebp
call fcn.00509280
jmp 0x50baee
cmp al, 0x25
jne 0x50bafa
push 0
lea edx, [esp + 0x24]
mov ecx, ebp
call fcn.0053f280
test eax, eax
je case.0x509adf.48
lea ebp, [esp + 0x20]
push 0x584670
push ebp
call fcn.005809c6
add esp, 8
test eax, eax
je 0x50bb1f
push ebx
lea edx, [edi + 8]
mov ecx, ebp
call fcn.00509360
test eax, eax
je case.0x509adf.48
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
jne 0x50bb2f
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x50bb27
cmp byte [esi], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, esi
call fcn.00509980
mov edi, eax
test edi, edi
je case.0x509adf.48
jmp 0x50bb50
push 0x2c
push esi
call fcn.00570260
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x50bb6f
mov byte [ebp], 0
mov al, byte [ebp + 1]
inc ebp
test al, al
jne 0x50bb6f
xor ebp, ebp
cmp byte [esi], 0x20
jne 0x50bb7c
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x50bb74
cmp byte [esi], 0
je 0x50bba6
push 0x584674
push esi
call fcn.005809c6
add esp, 8
test eax, eax
je 0x50bbb2
push esi
call fcn.005705cb
mov ecx, dword [ebx + 0xc64]
add esp, 4
cmp eax, ecx
je 0x50bbb2
test ebp, ebp
je case.0x509adf.48
mov esi, ebp
jmp 0x50bb50
mov edx, ebx
mov ecx, edi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov edx, dword [esp + 0x7f4]
mov byte [edx], al
mov edx, dword [esp + 0x10]
lea ebp, [ebx + 0x4d4]
mov byte [ebp], al
mov eax, edi
sub edx, edi
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50bbe0
mov esi, dword [esp + 0x18]
mov edx, dword [ebx + 0x1c40]
add esi, 8
mov ecx, esi
call fcn.004ff610
test al, al
je 0x50bc12
mov edx, ebp
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50bc08
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50bc20
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50bc38
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
cmp byte [ebp], 0x20
jne 0x50bc6d
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x20
je 0x50bc65
cmp byte [ebp], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov edx, dword [esp + 0x7f4]
mov ecx, edi
mov byte [edx], al
mov byte [ebx + 0x4d4], al
sub ecx, ebp
jmp 0x50bca0
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50bca0
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50bcc0
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50bcd8
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
mov eax, dword [ebx + 0xc7c]
test eax, eax
je case.0x509adf.48
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x50bd26
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
mov eax, dword [ebx + 0x404]
test eax, eax
je 0x50bd3f
mov ecx, ebx
call fcn.00509850
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509980
mov esi, eax
test esi, esi
je case.0x509adf.48
mov edx, dword [ebx + 0xc7c]
mov edx, dword [edx + 8]
push ebx
mov ecx, ebp
call fcn.005093c0
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, esi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov edi, dword [esp + 0x7f4]
mov edx, dword [esp + 0x10]
mov byte [edi], al
lea ebp, [ebx + 0x4d4]
mov byte [ebp], al
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50bd96
mov eax, dword [ebx + 0xc7c]
mov edx, dword [ebx + 0x1c40]
mov ecx, dword [eax + 8]
call fcn.004ff610
test al, al
je 0x50bdcd
mov ecx, dword [ebx + 0xc7c]
mov ecx, dword [ecx + 8]
mov edx, ebp
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50bdc3
mov edx, dword [ebx + 0xc7c]
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x50be5b
mov edx, edi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50bde0
mov eax, dword [ebx + 0xc7c]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x50be5b
mov edx, 0x10
jmp 0x50be05
mov edi, dword [esp + 0x7f4]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x50be06
mov cx, word [0x5842b8]
mov word [edi], cx
mov eax, dword [ebx + 0xc7c]
mov eax, dword [edx + eax]
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x50be23
mov edi, dword [esp + 0x7f4]
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x50be34
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 [ebx + 0xc7c]
mov eax, dword [edx + ecx + 4]
add edx, 4
test eax, eax
jne 0x50bdfe
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50be70
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50be88
mov edx, dword [esp + 0x7fc]
mov eax, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [eax], edx
pop ebx
add esp, 0x7e0
ret 0x10
mov eax, dword [ebx + 0xc7c]
test eax, eax
je case.0x509adf.48
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x50bed6
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
cmp byte [ebp], 0x20
jne 0x50bee8
lea esp, [esp]
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x20
je 0x50bee0
cmp byte [ebp], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov ecx, dword [esp + 0x7f4]
mov byte [ecx], al
mov ecx, edi
mov byte [ebx + 0x4d4], al
sub ecx, ebp
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50bf16
mov edx, dword [ebx + 0xc7c]
mov ecx, dword [edx + 8]
lea edx, [ebx + 0x470]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50bf30
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50bf48
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50bf60
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x50bfa0
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
cmp byte [ebp], 0x20
jne 0x50bfae
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x20
je 0x50bfa6
cmp byte [ebp], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov edx, dword [esp + 0x7f4]
mov ecx, edi
mov byte [edx], al
mov byte [ebx + 0x4d4], al
sub ecx, ebp
lea esp, [esp]
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50bfe0
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50c000
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50c018
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x50c058
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
cmp byte [ebp], 0x20
jne 0x50c068
mov edi, edi
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x20
je 0x50c060
cmp byte [ebp], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov esi, dword [esp + 0x7f4]
mov ecx, dword [esp + 0x10]
lea edi, [ebx + 0x4d4]
mov byte [esi], al
mov byte [edi], al
sub ecx, ebp
lea ebx, [ebx]
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50c0a0
mov ecx, dword [ebx + 0xc88]
call fcn.0042c530
test eax, eax
je 0x50c0d1
mov eax, dword [ebx + 0xc88]
add eax, 4
mov edx, esi
mov cl, byte [eax]
inc eax
mov byte [edx], cl
inc edx
test cl, cl
jne 0x50c0c5
jmp 0x50c11b
mov eax, dword [ebx + 0xc7c]
test eax, eax
je 0x50c11b
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x50c0ee
mov edx, esi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50c0e4
mov eax, dword [ebx + 0xc7c]
mov edx, dword [ebx + 0x1c40]
mov ecx, dword [eax + 8]
call fcn.004ff610
test al, al
je 0x50c11b
mov ecx, dword [ebx + 0xc7c]
mov ecx, dword [ecx + 8]
mov edx, edi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50c111
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50c130
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50c148
mov edx, dword [esp + 0x7fc]
mov eax, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [eax], edx
pop ebx
add esp, 0x7e0
ret 0x10
mov eax, dword [ebx + 0xc7c]
test eax, eax
je case.0x509adf.48
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x50c196
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
mov eax, dword [ebx + 0x404]
test eax, eax
je 0x50c1af
mov ecx, ebx
call fcn.00509850
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509980
mov esi, eax
test esi, esi
je case.0x509adf.48
mov ecx, dword [ebx + 0xc7c]
mov edx, dword [ecx + 8]
push ebx
mov ecx, ebp
call fcn.005093c0
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, esi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov ebp, dword [esp + 0x7f4]
mov byte [ebp], al
mov edx, edi
mov byte [ebx + 0x4d4], al
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50c202
mov edx, dword [ebx + 0xc7c]
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x50c297
mov edx, ebp
nop
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50c220
mov eax, dword [ebx + 0xc7c]
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x50c297
mov edx, 0x10
lea esp, [esp]
mov edi, ebp
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x50c243
mov cx, word [0x5842b8]
mov word [edi], cx
mov eax, dword [ebx + 0xc7c]
mov eax, dword [eax + edx]
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x50c260
mov edi, ebp
sub eax, esi
dec edi
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x50c270
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 [ebx + 0xc7c]
mov eax, dword [edx + ecx + 4]
add edx, 4
test eax, eax
jne 0x50c240
mov eax, dword [ebx + 0xc7c]
mov edx, dword [ebx + 0x1c40]
mov ecx, dword [eax + 8]
call fcn.004ff610
test al, al
je 0x50c2ca
mov ecx, dword [ebx + 0xc7c]
mov ecx, dword [ecx + 8]
lea edx, [ebx + 0x4d4]
mov edi, edi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50c2c0
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50c2d8
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50c2f0
mov edx, dword [esp + 0x7fc]
mov eax, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [eax], edx
pop ebx
add esp, 0x7e0
ret 0x10
mov eax, dword [ebx + 0xc7c]
test eax, eax
je case.0x509adf.48
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x50c33e
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
mov eax, dword [ebx + 0x404]
test eax, eax
je 0x50c357
mov ecx, ebx
call fcn.00509850
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509980
mov esi, eax
test esi, esi
je case.0x509adf.48
mov ecx, dword [ebx + 0xc7c]
mov edx, dword [ecx + 8]
push ebx
mov ecx, ebp
call fcn.005093c0
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, esi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov edi, dword [esp + 0x7f4]
mov edx, dword [esp + 0x10]
mov byte [edi], al
lea ebp, [ebx + 0x4d4]
mov byte [ebp], al
mov eax, esi
sub edx, esi
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50c3b0
mov edx, dword [ebx + 0xc7c]
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x50c3da
mov edx, edi
lea esp, [esp]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50c3d0
mov eax, dword [ebx + 0xc7c]
mov edx, dword [ebx + 0x1c40]
mov ecx, dword [eax + 8]
call fcn.004ff610
test al, al
je 0x50c40a
mov ecx, dword [ebx + 0xc7c]
mov ecx, dword [ecx + 8]
mov edx, ebp
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50c400
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50c418
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50c430
mov edx, dword [esp + 0x7fc]
mov eax, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [eax], edx
pop ebx
add esp, 0x7e0
ret 0x10
mov eax, dword [ebx + 0xc7c]
test eax, eax
je case.0x509adf.48
cmp byte [ebp], 0x20
jne 0x50c478
jmp 0x50c470
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x20
je 0x50c470
cmp byte [ebp], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov edx, dword [esp + 0x7f4]
mov ecx, edi
mov byte [edx], al
mov byte [ebx + 0x4d4], al
sub ecx, ebp
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50c4a6
mov ecx, dword [ebx + 0xc7c]
mov ecx, dword [ecx + 4]
test ecx, ecx
je 0x50c4ca
mov edi, edi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50c4c0
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50c4d8
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50c4f0
mov edx, dword [esp + 0x7fc]
mov eax, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [eax], edx
pop ebx
add esp, 0x7e0
ret 0x10
cmp byte [ebp], 0x20
jne 0x50c528
lea ecx, [ecx]
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x20
je 0x50c520
cmp byte [ebp], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov ecx, dword [esp + 0x7f4]
mov byte [ecx], al
mov ecx, edi
mov byte [ebx + 0x4d4], al
sub ecx, ebp
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50c556
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
nop
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50c570
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50c588
mov edx, dword [esp + 0x7fc]
mov eax, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [eax], edx
pop ebx
add esp, 0x7e0
ret 0x10
mov eax, dword [ebx + 0xc7c]
test eax, eax
je case.0x509adf.48
cmp byte [ebp], 0x20
jne 0x50c5cb
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x20
je 0x50c5c3
cmp byte [ebp], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov edx, dword [esp + 0x7f4]
mov ecx, edi
mov byte [edx], al
mov byte [ebx + 0x4d4], al
sub ecx, ebp
lea esp, [esp]
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50c600
mov ecx, dword [ebx + 0xc7c]
push ecx
mov ecx, 2
call fcn.004f4660
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50c630
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50c648
mov edx, dword [esp + 0x7fc]
mov eax, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [eax], edx
pop ebx
add esp, 0x7e0
ret 0x10
mov eax, dword [ebx + 0xc7c]
test eax, eax
je case.0x509adf.48
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x50c696
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
cmp byte [ebp], 0x20
jne 0x50c6a8
lea esp, [esp]
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x20
je 0x50c6a0
cmp byte [ebp], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov edx, dword [esp + 0x7f4]
mov ecx, edi
mov byte [edx], al
mov byte [ebx + 0x4d4], al
sub ecx, ebp
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50c6d6
mov ecx, dword [ebx + 0xc7c]
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x50c6fa
mov edi, edi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50c6f0
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50c708
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50c720
mov edx, dword [esp + 0x7fc]
mov eax, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [eax], edx
pop ebx
add esp, 0x7e0
ret 0x10
mov edx, dword [ebx + 0xc94]
mov ecx, dword [ebx + 0xc90]
call fcn.0051b1b0
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov ecx, ebp
call fcn.00509980
mov esi, eax
test esi, esi
je case.0x509adf.48
mov al, byte [ebp]
cmp al, 0x24
jne 0x50c7a4
cmp byte [ebp + 1], 0x28
jne 0x50c7a4
mov ecx, dword [ebx + 0xc90]
push ebx
push ecx
lea edx, [esp + 0x28]
mov ecx, ebp
call fcn.00509280
jmp 0x50c7b5
cmp al, 0x25
jne 0x50c7c1
push 0
lea edx, [esp + 0x24]
mov ecx, ebp
call fcn.0053f280
test eax, eax
je case.0x509adf.48
lea ebp, [esp + 0x20]
mov edx, dword [ebx + 0xc90]
push ebx
mov ecx, ebp
call fcn.00509360
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, esi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
lea ecx, [ebx + 0x80c]
sub ecx, ebp
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50c7f0
mov edx, dword [esp + 0x7f4]
mov byte [edx], al
mov edx, edi
mov byte [ebx + 0x4d4], al
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50c810
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50c828
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50c840
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
mov edx, ebx
mov ecx, ebp
call fcn.00509980
test eax, eax
mov dword [esp + 0x14], eax
je case.0x509adf.48
lea edi, [ebx + 0xc98]
lea edx, [esp + 0x408]
mov eax, edi
sub edx, edi
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50c890
lea edx, [esp + 0x408]
push 0x20
push edx
call fcn.00570260
mov esi, eax
add esp, 8
test esi, esi
je 0x50c8cf
mov byte [esi], 0
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
jne 0x50c8c8
lea ecx, [ecx]
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x50c8c0
cmp byte [esi], 0
jne 0x50c8cf
xor esi, esi
mov al, byte [ebp]
cmp al, 0x24
jne 0x50c8eb
cmp byte [ebp + 1], 0x28
jne 0x50c8eb
push ebx
push edi
lea edx, [esp + 0x28]
mov ecx, ebp
call fcn.00509280
jmp 0x50c8fc
cmp al, 0x25
jne 0x50c908
push 0
lea edx, [esp + 0x24]
mov ecx, ebp
call fcn.0053f280
test eax, eax
je case.0x509adf.48
lea ebp, [esp + 0x20]
push ebx
lea edx, [esp + 0x40c]
mov ecx, ebp
call fcn.00509360
test eax, eax
je case.0x509adf.48
mov edi, dword [esp + 0x14]
mov edx, ebx
mov ecx, edi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
lea ecx, [ebx + 0x80c]
sub ecx, ebp
lea esp, [esp]
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50c940
mov ebp, dword [esp + 0x7f4]
mov edx, dword [esp + 0x10]
mov byte [ebp], al
mov byte [ebx + 0x4d4], al
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50c963
test esi, esi
je 0x50c981
mov edx, ebp
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50c977
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
nop
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50c990
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50c9a8
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
mov eax, dword [ebx + 0xc7c]
test eax, eax
je case.0x509adf.48
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x50c9f6
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509980
mov esi, eax
test esi, esi
je case.0x509adf.48
mov al, byte [ebp]
cmp al, 0x24
jne 0x50ca2e
cmp byte [ebp + 1], 0x28
jne 0x50ca2e
mov edx, dword [ebx + 0xc7c]
mov eax, dword [edx + 0xc]
push ebx
push eax
lea edx, [esp + 0x28]
mov ecx, ebp
call fcn.00509280
jmp 0x50ca3f
cmp al, 0x25
jne 0x50ca4b
push 0
lea edx, [esp + 0x24]
mov ecx, ebp
call fcn.0053f280
test eax, eax
je case.0x509adf.48
lea ebp, [esp + 0x20]
mov ecx, dword [ebx + 0xc7c]
mov edx, dword [ecx + 0xc]
push ebx
mov ecx, ebp
call fcn.00509360
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, esi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
lea ecx, [ebx + 0x80c]
sub ecx, ebp
lea ecx, [ecx]
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50ca80
mov ebp, dword [esp + 0x7f4]
mov byte [ebp], al
mov edx, edi
mov byte [ebx + 0x4d4], al
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50caa1
mov edx, dword [ebx + 0xc7c]
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x50caca
mov edx, ebp
lea ebx, [ebx]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50cac0
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50cad8
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50caf0
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
mov eax, dword [ebx + 0xc7c]
test eax, eax
je case.0x509adf.48
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x50cb3e
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
mov eax, dword [ebx + 0x404]
test eax, eax
je 0x50cb57
mov ecx, ebx
call fcn.00509850
test eax, eax
je case.0x509adf.48
push 0x3a
push ebp
call fcn.00570260
mov esi, eax
add esp, 8
test esi, esi
je case.0x509adf.48
mov byte [esi], 0
mov al, byte [ebp]
cmp al, 0x24
jne 0x50cb94
cmp byte [ebp + 1], 0x28
jne 0x50cb94
mov edx, dword [ebx + 0xc7c]
mov eax, dword [edx + 0xc]
push ebx
push eax
lea edx, [esp + 0x28]
mov ecx, ebp
call fcn.00509280
jmp 0x50cba5
cmp al, 0x25
jne 0x50cbb1
push 0
lea edx, [esp + 0x24]
mov ecx, ebp
call fcn.0053f280
test eax, eax
je case.0x509adf.48
lea ebp, [esp + 0x20]
mov ecx, dword [ebx + 0xc7c]
mov edx, dword [ecx + 0xc]
push ebx
mov ecx, ebp
call fcn.00509360
test eax, eax
je case.0x509adf.48
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
jne 0x50cbda
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x50cbd2
cmp byte [esi], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, esi
call fcn.00509980
mov edi, eax
test edi, edi
je case.0x509adf.48
mov edx, dword [ebx + 0xc7c]
mov edx, dword [edx + 8]
push ebx
mov ecx, esi
call fcn.005093c0
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, edi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
lea ecx, [ebx + 0x80c]
sub ecx, ebp
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50cc28
mov ebp, dword [esp + 0x7f4]
mov edx, dword [esp + 0x10]
mov byte [ebp], al
lea esi, [ebx + 0x4d4]
mov byte [esi], al
mov eax, edi
sub edx, edi
lea ecx, [ecx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50cc50
mov eax, dword [ebx + 0xc7c]
mov ecx, dword [eax + 0xc]
mov edx, ebp
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50cc65
mov ecx, dword [ebx + 0xc7c]
mov edx, dword [ebx + 0x1c40]
mov ecx, dword [ecx + 8]
call fcn.004ff610
test al, al
je 0x50cc9c
mov edx, dword [ebx + 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 0x50cc92
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50ccb0
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50ccc8
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
mov eax, dword [ebx + 0xc7c]
test eax, eax
je case.0x509adf.48
mov eax, dword [ebx + 0x400]
test eax, eax
je 0x50cd16
mov ecx, ebx
call fcn.00509800
test eax, eax
jne case.0x509adf.48
mov eax, dword [ebx + 0x404]
test eax, eax
je 0x50cd2f
mov ecx, ebx
call fcn.00509850
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509980
mov esi, eax
test esi, esi
je case.0x509adf.48
mov edx, dword [ebx + 0xc7c]
mov edx, dword [edx + 8]
push ebx
mov ecx, ebp
call fcn.005093c0
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, esi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov edi, dword [esp + 0x7f4]
mov edx, dword [esp + 0x10]
mov byte [edi], al
lea ebp, [ebx + 0x4d4]
mov byte [ebp], al
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50cd86
mov eax, dword [ebx + 0xc7c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x50cdaa
mov edx, edi
nop
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50cda0
mov ecx, dword [ebx + 0xc7c]
mov edx, dword [ebx + 0x1c40]
mov ecx, dword [ecx + 8]
call fcn.004ff610
test al, al
je 0x50cdda
mov edx, dword [ebx + 0xc7c]
mov ecx, dword [edx + 8]
mov edx, ebp
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50cdd0
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50cde8
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50ce00
mov eax, dword [esp + 0x7fc]
mov ecx, dword [esp + 0x7f8]
pop esi
pop edi
pop ebp
mov dword [ecx], eax
pop ebx
add esp, 0x7e0
ret 0x10
mov eax, dword [ebx + 0xc7c]
test eax, eax
je case.0x509adf.48
cmp byte [ebp], 0x20
jne 0x50ce48
jmp 0x50ce40
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x20
je 0x50ce40
cmp byte [ebp], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov edx, dword [esp + 0x7f4]
mov ecx, edi
mov byte [edx], al
mov byte [ebx + 0x4d4], al
sub ecx, ebp
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50ce76
mov eax, dword [ebx + 0xc7c]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x50ce9a
mov edi, edi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50ce90
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50cea8
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50cec0
jmp 0x50d232
cmp byte [ebp], 0x20
jne 0x50cedd
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x20
je 0x50ced5
cmp byte [ebp], 0
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509910
test eax, eax
jne case.0x509adf.48
mov eax, dword [esp + 0x7f4]
mov ecx, edi
mov byte [eax], 0
mov byte [ebx + 0x4d4], 0
sub ecx, ebp
lea ecx, [ecx]
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50cf10
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50cf30
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50cf48
jmp 0x50d232
mov eax, dword [ebx + 0x1468]
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509980
mov edi, eax
test edi, edi
je case.0x509adf.48
lea edx, [ebx + 0xc98]
push ebx
mov ecx, ebp
call fcn.00509360
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, edi
call fcn.00509980
test eax, eax
mov dword [esp + 0x18], eax
je case.0x509adf.48
mov ecx, dword [ebx + 0x1468]
call fcn.00542c90
test eax, eax
je case.0x509adf.48
mov cl, byte [edi]
cmp cl, 0x23
lea esi, [eax + 8]
mov dword [esp + 0x14], esi
jne 0x50cfcd
cmp dword [eax + 0x708], 1
jmp 0x50d03c
cmp cl, 0x3f
jne 0x50cff3
mov edx, dword [eax + 0x708]
mov ecx, 2
cmp edx, ecx
jne case.0x509adf.48
cmp dword [eax + 0x70c], ecx
jg case.0x509adf.48
jmp 0x50d042
cmp cl, 0x3d
jne 0x50d014
cmp dword [eax + 0x708], 2
jne case.0x509adf.48
cmp dword [eax + 0x70c], 3
jne case.0x509adf.48
jmp 0x50d046
cmp cl, 0x21
jne 0x50d035
cmp dword [eax + 0x708], 2
jne case.0x509adf.48
cmp dword [eax + 0x70c], 4
jne case.0x509adf.48
jmp 0x50d046
cmp cl, 0x40
jne 0x50d042
cmp byte [esi], cl
jne case.0x509adf.48
test esi, esi
jne 0x50d06f
mov al, byte [edi + 1]
test al, al
je 0x50d04e
inc edi
mov eax, dword [esp + 0x14]
push 0x20
push eax
call fcn.00570260
mov esi, eax
add esp, 8
test esi, esi
je 0x50d06b
inc esi
je 0x50d06b
cmp byte [esi], 0
jne 0x50d06f
mov esi, dword [esp + 0x14]
push ebx
mov edx, esi
mov ecx, edi
call fcn.00509360
test eax, eax
jne 0x50d08f
push ebx
mov edx, esi
mov ecx, edi
call fcn.005093c0
test eax, eax
je case.0x509adf.48
mov edi, dword [esp + 0x18]
mov edx, ebx
mov ecx, edi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
lea ecx, [ebx + 0x80c]
sub ecx, ebp
lea esp, [esp]
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50d0b0
mov esi, dword [esp + 0x7f4]
mov edx, dword [esp + 0x10]
mov byte [esi], al
mov byte [ebx + 0x4d4], al
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50d0d2
lea eax, [ebx + 0xc98]
mov edx, esi
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50d0e6
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50d100
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50d118
jmp 0x50d232
mov eax, dword [ebx + 0xc7c]
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, ebp
call fcn.00509980
mov esi, eax
test esi, esi
je case.0x509adf.48
mov al, byte [ebp]
cmp al, 0x24
jne 0x50d16d
cmp byte [ebp + 1], 0x28
jne 0x50d16d
mov eax, dword [ebx + 0xc7c]
mov ecx, dword [eax + 8]
push ebx
push ecx
lea edx, [esp + 0x28]
mov ecx, ebp
call fcn.00509280
jmp 0x50d17e
cmp al, 0x25
jne 0x50d18a
push 0
lea edx, [esp + 0x24]
mov ecx, ebp
call fcn.0053f280
test eax, eax
je case.0x509adf.48
lea ebp, [esp + 0x20]
mov edx, dword [ebx + 0xc7c]
mov edx, dword [edx + 8]
push ebx
mov ecx, ebp
call fcn.00509360
test eax, eax
je case.0x509adf.48
mov edx, ebx
mov ecx, esi
call fcn.00509910
test eax, eax
jne case.0x509adf.48
lea ecx, [ebx + 0x80c]
sub ecx, ebp
lea esp, [esp]
mov al, byte [ebp]
mov byte [ecx + ebp], al
inc ebp
test al, al
jne 0x50d1c0
mov ebp, dword [esp + 0x7f4]
mov byte [ebp], al
mov edx, edi
mov byte [ebx + 0x4d4], al
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50d1e1
mov eax, dword [ebx + 0xc7c]
mov ecx, dword [eax + 8]
mov edx, ebp
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50d1f6
lea eax, [ebx + 0x776]
lea edx, [ebx + 0x7da]
sub edx, eax
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50d210
lea eax, [ebx + 0x744]
lea edx, [ebx + 0x7a8]
sub edx, eax
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50d228
mov ecx, dword [esp + 0x7fc]
mov edx, dword [esp + 0x7f8]
mov dword [edx], ecx
pop esi
pop edi
pop ebp
pop ebx
add esp, 0x7e0
ret 0x10