Function at 0x50d610
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0xce8
push ebx
push ebp
push esi
mov ebx, ecx
push edi
mov esi, edx
xor edi, edi
mov edx, 0x3e7
lea ecx, [esp + 0x3c]
mov dword [esp + 0x18], ebx
mov dword [ebx + 0x1c3c], edi
call fcn.0041ef30
mov edx, 0x3e7
lea ecx, [esp + 0x424]
call fcn.0041ef30
mov edx, 0x3e7
lea ecx, [esp + 0x80c]
call fcn.0041ef30
mov ecx, ebx
sub ecx, esi
mov eax, esi
lea edx, [ecx + 8]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50d663
mov edx, dword [esp + 0xcfc]
mov dword [ebx + 0x3f0], edx
lea eax, [ebx + 0x640]
lea esi, [ebx + 0x744]
lea edx, [ebx + 0xbf3]
mov dword [esp + 0x2c], edi
lea edi, [ebx + 0x40c]
mov byte [eax], cl
mov byte [esi], cl
mov byte [ebx + 0x776], cl
mov byte [edx], cl
cmp byte [edi], 0
je 0x50d766
cmp byte [ebx + 0x470], 0
push ebx
lea ecx, [ebx + 0x470]
push edx
push eax
je 0x50d747
xor edx, edx
call fcn.00509150
push eax
push 0x583948
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
mov ebp, dword [ebx + 0x5d8]
add esp, 0xc
mov edx, 0x104
lea ecx, [esp + 0xbf4]
call fcn.0041ef30
xor ecx, ecx
call fcn.00510e50
test eax, eax
je 0x50d730
mov esi, dword [eax + 0x168]
test esi, esi
je 0x50d730
mov eax, dword [esi + 0x28]
test eax, eax
jne 0x50d726
mov ecx, dword [esi]
lea eax, [esp + 0xbf4]
push eax
push ebx
push 0
push 0
push ebp
mov edx, edi
call fcn.00508e60
test eax, eax
jne 0x50d730
mov esi, dword [esi + 0x40]
test esi, esi
jne 0x50d704
lea ecx, [ecx]
mov eax, dword [0x59bd00]
test eax, eax
mov dword [esp + 0x2c], eax
jge 0x50d78d
mov dword [esp + 0x2c], 0
jmp 0x50d78d
mov edx, dword [ebx + 0x5d8]
mov ecx, edi
call fcn.00509150
push eax
push 0x583948
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x50d78d
mov ecx, dword [0x59bd00]
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
push ecx
push 0x583948
push eax
call edi
mov edx, dword [0x59bd00]
push edx
push 0x583948
push esi
call edi
add esp, 0x18
mov eax, dword [0x5aed58]
mov ecx, dword [esp + 0xd00]
xor esi, esi
cmp eax, esi
je 0x50d7b5
nop
cmp ecx, 1
jne 0x50d7ab
mov dword [eax + 0x150], esi
mov eax, dword [eax + 0x170]
cmp eax, esi
jne 0x50d7a0
mov ecx, dword [ebx + 0x3f8]
cmp ecx, esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
je 0x50d7e8
call fcn.00510ec0
test eax, eax
je 0x50d7e8
mov eax, dword [ebx + 0x3f8]
mov dword [esp + 0x24], 1
mov dword [esp + 0x28], eax
mov dword [ebx + 0x3f8], esi
mov ebp, dword [esp + 0xcfc]
nop
mov edi, dword [ebp*4 + 0x5aec20]
test edi, edi
mov dword [0x5ae834], 0
mov dword [esp + 0x10], edi
je 0x50d8c9
cmp dword [esp + 0x24], 1
jne 0x50d834
mov eax, dword [esp + 0x28]
cmp dword [edi + 0x2c], eax
je 0x50d830
mov edi, dword [edi + 0x34]
test edi, edi
jne 0x50d818
mov dword [esp + 0x10], edi
jmp 0x50d8d0
mov edi, dword [edi + 0x34]
mov dword [esp + 0x10], edi
test edi, edi
je 0x50d8c9
lea esp, [esp]
mov ecx, dword [edi + 0x2c]
call fcn.00510ec0
test eax, eax
je 0x50d8c9
mov eax, dword [ebx + 0x1c3c]
test eax, eax
je 0x50d870
mov ecx, dword [edi + 0x2c]
lea esp, [esp]
cmp dword [eax + 0x2c], ecx
je 0x50d903
mov eax, dword [eax + 0x40]
test eax, eax
jne 0x50d860
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x50d914
mov ecx, dword [edi + 0x2c]
call fcn.00510ec0
test eax, eax
je 0x50d8c5
mov ecx, dword [ebx + 0x1c3c]
mov esi, dword [edi + 0x2c]
mov eax, ecx
test eax, eax
je 0x50d8a2
cmp dword [eax + 0x2c], esi
je 0x50d8be
mov eax, dword [eax + 0x40]
test eax, eax
jne 0x50d896
push 0
mov edx, 0x583b74
call fcn.004c7e10
test eax, eax
je 0x50d8c5
mov dword [ebx + 0x1c3c], eax
mov ecx, dword [eax + 0x44]
mov dword [ecx + 0x2c], esi
mov edi, dword [edi + 0x40]
test edi, edi
jne 0x50d870
mov dword [esp + 0x10], edi
cmp dword [esp + 0x24], 1
jne 0x50d8eb
mov edi, dword [ebp*4 + 0x5aec20]
test edi, edi
mov dword [esp + 0x24], 2
mov dword [esp + 0x10], edi
jne 0x50d840
lea ecx, [ebx + 0x1c3c]
call fcn.004c8280
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xce8
ret 8
mov edi, dword [edi + 0x34]
test edi, edi
mov dword [esp + 0x10], edi
jne 0x50d840
jmp 0x50d8c9
cmp ebp, 0x41
mov dword [esp + 0x10], edi
jne 0x50d939
mov eax, dword [edi + 0x2c]
cmp dword [eax + 0x158], 1
jne 0x50d82d
mov dword [eax + 0x158], 2
jmp 0x50d958
cmp ebp, 0x24
jne 0x50d958
mov eax, dword [edi + 0x2c]
cmp dword [eax + 0x154], 1
jne 0x50d82d
mov dword [eax + 0x154], 2
lea ecx, [ebx + 0x146c]
mov edx, 0x3e7
mov dword [esp + 0x34], 0
call fcn.0041ef30
lea ecx, [ebx + 0x1853]
mov edx, 0x3e7
call fcn.0041ef30
lea ecx, [ebx + 0x4d4]
mov edx, 0x104
call fcn.0041ef30
lea ecx, [ebx + 0x80c]
mov edx, 0x3e7
call fcn.0041ef30
mov byte [ebx + 0x7a8], 0
mov byte [ebx + 0x7da], 0
mov dword [esp + 0x14], 0
mov dword [ebx + 0x3f4], 0xffffffff
mov dword [ebx + 0x3fc], 1
lea ebx, [ebx]
test edi, edi
je 0x50d8c9
mov eax, dword [esp + 0x24]
cmp eax, 1
jne 0x50d9f0
mov edx, dword [esp + 0x28]
cmp dword [edi + 0x2c], edx
jne 0x50d8d0
jmp 0x50da02
cmp eax, 2
jne 0x50da02
mov eax, dword [esp + 0x28]
cmp dword [edi + 0x2c], eax
je 0x50d82d
mov ecx, dword [edi + 0x2c]
mov dword [ebx + 0x3f8], ecx
mov ecx, dword [ebx + 0x1c3c]
mov esi, dword [edi + 0x2c]
mov eax, ecx
xor edx, edx
cmp eax, edx
je 0x50da2c
lea esp, [esp]
cmp dword [eax + 0x2c], esi
je 0x50da4e
mov eax, dword [eax + 0x40]
cmp eax, edx
jne 0x50da20
push 0
mov edx, 0x583b74
call fcn.004c7e10
test eax, eax
je 0x50d8c9
mov dword [ebx + 0x1c3c], eax
mov edx, dword [eax + 0x44]
mov dword [edx + 0x2c], esi
xor edx, edx
cmp ebp, 0x47
mov eax, dword [edi + 0x30]
mov ecx, dword [eax + 0x40]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x30], edx
mov dword [ebx + 0x400], edx
mov dword [ebx + 0x404], edx
mov dword [ebx + 0x408], edx
jne 0x50db54
mov eax, dword [ebx + 0x3f8]
cmp dword [eax + 0x14c], 1
jne 0x50e329
mov dword [eax + 0x14c], 2
mov eax, dword [edi + 0x30]
mov ecx, dword [esp + 0xd00]
cmp dword [eax + 8], ecx
jne 0x50e329
mov ecx, dword [eax]
lea edx, [esp + 0x424]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50dab0
cmp byte [esp + 0x424], 0x20
lea esi, [esp + 0x424]
jne 0x50dad8
jmp 0x50dad0
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x50dad0
cmp byte [esi], 0
je 0x50e329
add esi, 3
cmp byte [esi], 0x20
jne 0x50daf8
lea esp, [esp]
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x50daf0
mov al, byte [esi]
test al, al
je 0x50e329
cmp al, 0x6d
je 0x50db0e
cmp al, 0x4d
jne 0x50dde1
push 3
push 0x58a4bc
push esi
call fcn.00580a2f
add esp, 0xc
test eax, eax
jne 0x50dde1
mov ecx, dword [ebx + 0x1c40]
call fcn.004e2760
test eax, eax
je 0x50dda9
mov eax, dword [ebx + 0x1c40]
mov edx, dword [eax + 0xf28]
imul edx, edx, 0x64
lea eax, [edx + eax + 0xdfc]
jmp 0x50ddae
cmp ebp, 0x1d
jne 0x50db7e
cmp dword [esp + 0xd00], edx
jne 0x50da94
mov edx, dword [ebx + 0x3f8]
cmp dword [edx + 0x150], 2
je 0x50e329
jmp 0x50da94
cmp ebp, 2
jne 0x50dd59
mov esi, dword [edi + 0x30]
cmp dword [esi + 0x20], edx
je 0x50dba6
lea eax, [ebx + 8]
push eax
call fcn.005705cb
mov ecx, dword [esi + 0x20]
add esp, 4
cmp ecx, eax
jne 0x50e329
mov ecx, dword [esi]
lea edx, [esp + 0x424]
nop
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50dbb0
cmp byte [esp + 0x424], 0x20
lea esi, [esp + 0x424]
jne 0x50dbd8
jmp 0x50dbd0
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x50dbd0
cmp byte [esi], 0
je 0x50e329
mov al, byte [esi + 4]
add esi, 4
cmp al, 0x20
jne 0x50dbf8
jmp 0x50dbf0
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x50dbf0
cmp byte [esi], 0
je 0x50e329
mov edx, ebx
mov ecx, esi
call fcn.00509980
mov ebp, eax
test ebp, ebp
jne 0x50dc15
mov ebp, str._return
cmp byte [esi], 0x20
jne 0x50dc28
lea ebx, [ebx]
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x50dc20
cmp byte [esi], 0x26
jne 0x50dc37
cmp dword [ebx], 0
jne 0x50e329
inc esi
mov al, byte [esi]
test al, al
je 0x50e329
cmp al, 0x24
jne 0x50dc5e
cmp byte [esi + 1], 0x28
jne 0x50dc5e
push ebx
push 0
lea edx, [esp + 0x814]
mov ecx, esi
call fcn.00509280
jmp 0x50dc72
cmp al, 0x25
jne 0x50dc81
push 0
lea edx, [esp + 0x810]
mov ecx, esi
call fcn.0053f280
test eax, eax
je 0x50e329
lea esi, [esp + 0x80c]
push 0x24
push esi
call fcn.00570260
add esp, 8
test eax, eax
je 0x50dca6
mov edx, 0x5877d0
mov ecx, esi
mov dword [ebx + 0x408], 1
call fcn.00524d90
mov al, byte [esi]
cmp al, 0x2a
jne 0x50dcb3
mov cl, byte [esi + 1]
test cl, cl
je 0x50dcdb
movzx ecx, al
push ecx
call fcn.00570e57
add esp, 4
test eax, eax
je 0x50dcef
lea edx, [ebx + 8]
push edx
call fcn.005705cb
push esi
mov edi, eax
call fcn.005705cb
add esp, 8
cmp eax, edi
jne 0x50dcef
lea edx, [esp + 0x3c]
mov eax, ebp
sub edx, ebp
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50dce3
jmp 0x50dd2b
movzx edx, byte [ebx + 8]
lea edi, [ebx + 8]
push edx
call fcn.00570e57
add esp, 4
test eax, eax
jne 0x50e329
push edi
push esi
call fcn.005809c6
add esp, 8
test eax, eax
jne 0x50e329
lea edx, [esp + 0x3c]
mov eax, ebp
sub edx, ebp
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x50dd21
mov eax, dword [esp + 0x20]
push ebx
push eax
lea ecx, [esp + 0x1c]
push ecx
lea eax, [ebx + 0x1853]
push eax
lea edx, [ebx + 0x146c]
lea ecx, [esp + 0x4c]
call fcn.00509a90
mov al, byte [ebx + 0x7da]
test al, al
jmp 0x50e323
cmp ebp, 1
jne 0x50da94
mov edx, dword [edi + 0x30]
mov ecx, dword [edx]
lea edx, [esp + 0x424]
mov edi, edi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x50dd70
cmp byte [esp + 0x424], 0x20
lea esi, [esp + 0x424]
jne 0x50dd98
jmp 0x50dd90
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x50dd90
cmp byte [esi], 0
je 0x50e329
add esi, 5
jmp 0x50dae4
mov eax, 0x583b74
push eax
lea eax, [ebx + 0x40c]
push eax
call fcn.005809c6
add esp, 8
test eax, eax
jne 0x50e329
mov al, byte [esi + 3]
add esi, 3
cmp al, 0x20
jne 0x50ddd8
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x50ddd0
cmp byte [esi], 0
je 0x50e329
push 0x3a
push esi
call fcn.00570260
add esp, 8
test eax, eax
je 0x50e329
mov byte [eax], 0
mov cl, byte [eax + 1]
inc eax
cmp cl, 0x20
mov dword [esp + 0x1c], eax
jne 0x50de11
mov cl, byte [eax + 1]
inc eax
cmp cl, 0x20
je 0x50de04
mov dword [esp + 0x1c], eax
cmp byte [eax], 0
je 0x50e329
mov ebp, dword [esp + 0x2c]
test ebp, ebp
je 0x50dee7
mov al, byte [ebx + 0x744]
test al, al
lea edi, [ebx + 0x744]
je 0x50dee7
movzx ecx, al
push ecx
call fcn.00570e57
add esp, 4
test eax, eax
je 0x50dee7
push edi
call fcn.005705cb
push 0x3e
push esi
mov edi, eax
call fcn.00570260
add esp, 0xc
test eax, eax
je 0x50dea1
push 0x3d
push esi
call fcn.00570260
add esp, 8
test eax, eax
je 0x50de7e
cmp edi, ebp
jg 0x50e329
jmp 0x50dee7
push 0x3c
push esi
call fcn.00570260
add esp, 8
test eax, eax
je 0x50de97
cmp edi, ebp
je 0x50e329
jmp 0x50dee7
cmp edi, ebp
jge 0x50e329
jmp 0x50dee7
push 0x3c
push esi
call fcn.00570260
add esp, 8
test eax, eax
push 0x3d
push esi
je 0x50ded3
call fcn.00570260
add esp, 8
test eax, eax
je 0x50dec9
cmp edi, ebp
jl 0x50e329
jmp 0x50dee7
cmp edi, ebp
jle 0x50e329
jmp 0x50dee7
call fcn.00570260
add esp, 8
test eax, eax
je 0x50dee7
cmp edi, ebp
jne 0x50e329
push 0x26
push esi
call fcn.00570260
add esp, 8
test eax, eax
je 0x50deff
cmp dword [ebx], 0
jne 0x50e329
push 0x2b
push esi
call fcn.00570260
add esp, 8
test eax, eax
mov edi, 1
je 0x50df17
mov dword [esp + 0x30], edi
push 0x21
push esi
call fcn.00570260
add esp, 8
test eax, eax
je 0x50df2c
mov dword [ebx + 0x400], edi
push 0x40
push esi
call fcn.00570260
add esp, 8
test eax, eax
je 0x50df41
mov dword [ebx + 0x404], edi
push 0x24
push esi
call fcn.00570260
add esp, 8
test eax, eax
je 0x50df56
mov dword [ebx + 0x408], edi
cmp byte [esi], 0
mov byte [ebx + 0x776], 0
mov ecx, esi
je 0x50dfe2
cmp ecx, dword [esp + 0x1c]
jae 0x50dfe2
mov al, byte [ecx]
cmp al, 0x24
je 0x50df8c
cmp al, 0x26
je 0x50df8c
cmp al, 0x2b
je 0x50df8c
cmp al, 0x40
je 0x50df8c
cmp al, 0x21
je 0x50df8c
cmp al, 0x2a
je 0x50df8c
cmp al, 0x5e
je 0x50df8c
cmp al, 0x20
jne 0x50df96
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x50df64
jmp 0x50dfe2
mov eax, ecx
lea edi, [eax + 1]
jmp 0x50dfa0
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x50dfa0
sub eax, edi
cmp eax, 0x23
jbe 0x50dfb1
mov byte [ecx + 0x23], dl
lea edx, [ebx + 0x776]
mov eax, ecx
sub edx, ecx
jmp 0x50dfc0
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50dfc0
lea eax, [ebx + 0x776]
push 0x21
push eax
call fcn.00570260
add esp, 8
test eax, eax
je 0x50dfe2
mov byte [eax], 0
mov al, byte [ebx + 0x7da]
test al, al
jne 0x50e00b
push 0x2a
push esi
call fcn.00570260
add esp, 8
test eax, eax
je 0x50e00b
add ebx, 0x776
mov word [ebx], 0x2a
jmp 0x50e154
mov al, byte [ebx + 0x776]
test al, al
je 0x50e329
lea esi, [ebx + 0x640]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x50e024
sub eax, edx
add eax, esi
mov dword [esp + 0x38], eax
xor ebx, ebx
cmp byte [esi], 0x20
jne 0x50e048
lea ebx, [ebx]
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x50e040
mov al, byte [esi]
test al, al
je 0x50e329
cmp al, 0x3d
jne 0x50e05d
mov ebx, 1
jmp 0x50e069
cmp al, 0x2b
jne 0x50e076
mov dword [esp + 0x30], 1
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x50e052
jmp 0x50e329
cmp byte [esi], 0
je 0x50e329
push 0x2c
push esi
call fcn.00570260
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x50e094
mov byte [ebp], 0
mov edi, dword [esp + 0x18]
add edi, 0x744
mov edx, edi
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50e0a4
mov eax, dword [esp + 0x18]
movzx edx, byte [eax + 0x776]
add eax, 0x776
push edx
call fcn.00570e57
add esp, 4
test eax, eax
je 0x50e19d
movzx eax, byte [edi]
push eax
call fcn.00570e57
add esp, 4
test eax, eax
je 0x50e1c4
push edi
call fcn.005705cb
mov edi, eax
mov eax, dword [esp + 0x1c]
add eax, 0x776
push eax
call fcn.005705cb
mov esi, eax
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x7da]
add eax, 0x7da
add esp, 8
test cl, cl
je 0x50e126
mov eax, dword [esp + 0x18]
add eax, 0x7da
push eax
call fcn.005705cb
add esp, 4
jmp 0x50e128
xor eax, eax
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x50e138
cmp edi, esi
jne 0x50e1c4
cmp esi, eax
jle 0x50e1c4
test ebx, ebx
je 0x50e148
cmp edi, esi
jmp 0x50e1c2
cmp edi, esi
jl 0x50e1c4
test ebp, ebp
je 0x50e154
mov byte [ebp], 0x2c
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edx, ebx
mov ecx, esi
call fcn.00509980
mov ebp, eax
test ebp, ebp
jne 0x50e170
mov ebp, str._return
cmp dword [esp + 0xcfc], 1
jne 0x50e4bf
mov al, byte [esi]
cmp al, 0x24
jne 0x50e1f0
cmp byte [esi + 1], 0x28
jne 0x50e1f0
push ebx
push 0
lea edx, [esp + 0x814]
mov ecx, esi
call fcn.00509280
jmp 0x50e204
movzx ecx, byte [edi]
push ecx
call fcn.00570e57
add esp, 4
test eax, eax
jne 0x50e1c4
mov eax, dword [esp + 0x18]
add eax, 0x776
push esi
push eax
call fcn.005809c6
add esp, 8
test eax, eax
je 0x50e14c
test ebp, ebp
je 0x50e329
lea esi, [ebp + 1]
mov byte [ebp], 0x2c
cmp byte [esi], 0
je 0x50e329
cmp esi, dword [esp + 0x38]
jae 0x50e329
mov ebx, 1
jmp 0x50e035
cmp al, 0x25
jne 0x50e217
push 0
lea edx, [esp + 0x810]
mov ecx, esi
call fcn.0053f280
test eax, eax
je 0x50e329
lea esi, [esp + 0x80c]
mov dword [esp + 0x1c], esi
cmp byte [esi], 0x2a
jne 0x50e272
mov al, byte [esi + 1]
test al, al
jne 0x50e272
lea edx, [esp + 0x3c]
mov eax, ebp
sub edx, ebp
jmp 0x50e230
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50e230
mov edx, dword [esp + 0x20]
push ebx
push edx
lea eax, [esp + 0x1c]
push eax
lea eax, [ebx + 0x1853]
push eax
lea edx, [ebx + 0x146c]
lea ecx, [esp + 0x4c]
call fcn.00509a90
mov al, byte [ebx + 0x7da]
test al, al
je 0x50e329
movzx ecx, al
push ecx
jmp 0x50e525
push 0x2a
push esi
call fcn.00570260
add esp, 8
test eax, eax
jne 0x50e294
push 0x3f
push esi
call fcn.00570260
add esp, 8
test eax, eax
je 0x50e3ed
push ebx
lea edx, [ebx + 8]
mov ecx, esi
call fcn.00509360
test eax, eax
je 0x50e3ed
lea edx, [esp + 0x3c]
mov eax, ebp
sub edx, ebp
nop
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50e2b0
mov esi, dword [esp + 0x20]
push ebx
push esi
lea edx, [esp + 0x1c]
push edx
lea eax, [ebx + 0x1853]
push eax
lea edx, [ebx + 0x146c]
lea ecx, [esp + 0x4c]
call fcn.00509a90
mov al, byte [ebx + 0x7da]
test al, al
je 0x50e2fd
movzx eax, al
push eax
call fcn.00570e57
add esp, 4
test eax, eax
jne 0x50e2fd
mov dword [esp + 0x34], 1
cmp dword [esp + 0x14], esi
jne 0x50e31d
lea edx, [ebx + 0x80c]
lea ecx, [esp + 0x3c]
lea eax, [esp + 0x3c]
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50e313
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x50e535
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x40]
test eax, eax
mov ebx, dword [esp + 0x18]
je 0x50e594
mov ecx, dword [eax + 0x2c]
cmp ecx, dword [ebx + 0x3f8]
je 0x50e355
mov cl, byte [ebx + 0x7da]
test cl, cl
jne 0x50e539
mov ecx, dword [ebx + 0x3fc]
test ecx, ecx
je 0x50e5c2
mov edi, eax
test edi, edi
mov dword [esp + 0x10], edi
je 0x50e3e1
lea ecx, [ecx]
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x50e588
mov eax, dword [edi + 0x40]
test eax, eax
je 0x50e5dc
mov esi, dword [edi + 0x2c]
cmp dword [eax + 0x2c], esi
je 0x50e3d6
mov ecx, dword [ebx + 0x1c3c]
mov eax, ecx
test eax, eax
je 0x50e3ac
lea ebx, [ebx]
cmp dword [eax + 0x2c], esi
je 0x50e3c8
mov eax, dword [eax + 0x40]
test eax, eax
jne 0x50e3a0
push 0
mov edx, 0x583b74
call fcn.004c7e10
test eax, eax
je 0x50e3e1
mov dword [ebx + 0x1c3c], eax
mov edx, dword [eax + 0x44]
mov dword [edx + 0x2c], esi
mov al, byte [ebx + 0x7da]
test al, al
jne 0x50e539
mov edi, dword [edi + 0x40]
test edi, edi
mov dword [esp + 0x10], edi
jne 0x50e370
mov ebp, dword [esp + 0xcfc]
jmp 0x50d8c9
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x50e3f2
sub eax, edx
lea esi, [ebx + 8]
mov edi, eax
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x50e405
sub eax, edx
cmp eax, edi
jb 0x50e329
mov edx, dword [esp + 0x1c]
push edi
push esi
push edx
call fcn.00580a2f
add esp, 0xc
test eax, eax
jne 0x50e329
mov al, byte [esi + edi]
test al, al
je 0x50e43c
cmp al, 0x20
jne 0x50e329
lea edx, [esp + 0x3c]
mov eax, ebp
sub edx, ebp
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50e444
mov esi, dword [esp + 0x20]
push ebx
push esi
lea eax, [esp + 0x1c]
push eax
lea eax, [ebx + 0x1853]
push eax
lea edx, [ebx + 0x146c]
lea ecx, [esp + 0x4c]
call fcn.00509a90
mov al, byte [ebx + 0x7da]
test al, al
je 0x50e491
movzx ecx, al
push ecx
call fcn.00570e57
add esp, 4
test eax, eax
jne 0x50e491
mov dword [esp + 0x34], 1
cmp dword [esp + 0x14], esi
jne 0x50e31d
lea edx, [ebx + 0x80c]
lea ecx, [esp + 0x3c]
lea eax, [esp + 0x3c]
sub edx, ecx
jmp 0x50e4b0
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50e4b0
jmp 0x50e31d
cmp byte [esi], 0x2a
jne 0x50e4cb
mov al, byte [esi + 1]
test al, al
je 0x50e4e0
lea edx, [ebx + 8]
push edx
push esi
call fcn.005809c6
add esp, 8
test eax, eax
jne 0x50e329
lea edx, [esp + 0x3c]
mov eax, ebp
sub edx, ebp
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x50e4e8
mov eax, dword [esp + 0x20]
push ebx
push eax
lea ecx, [esp + 0x1c]
push ecx
lea eax, [ebx + 0x1853]
push eax
lea edx, [ebx + 0x146c]
lea ecx, [esp + 0x4c]
call fcn.00509a90
mov al, byte [ebx + 0x7da]
test al, al
je 0x50e329
movzx edx, al
push edx
call fcn.00570e57
add esp, 4
test eax, eax
jne 0x50e329
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0xcfc]
mov edx, dword [esp + 0xd00]
push edx
mov edx, dword [esp + 0x18]
push ebx
mov ecx, ebp
call fcn.0050d360
mov eax, dword [0x5ae834]
test eax, eax
jne 0x50d7f0
mov ecx, dword [ebx + 0x3f8]
call fcn.00510ec0
test eax, eax
je 0x50d7f0
mov ecx, edi
call fcn.00510c30
test eax, eax
je 0x50d7f0
jmp 0x50d82d
mov ebp, dword [esp + 0xcfc]
jmp 0x50d9d0
mov al, byte [ebx + 0x7da]
test al, al
mov ebp, dword [esp + 0xcfc]
je 0x50d8c9
mov eax, dword [esp + 0xd00]
mov edx, dword [esp + 0x14]
push eax
push ebx
mov ecx, ebp
call fcn.0050d360
jmp 0x50d8c9
mov al, byte [ebx + 0x7da]
test al, al
mov ebp, dword [esp + 0xcfc]
jne 0x50e540
jmp 0x50d82d
mov al, byte [ebx + 0x7da]
test al, al
je 0x50e3e1
mov ecx, dword [esp + 0xd00]
mov ebp, dword [esp + 0xcfc]
mov edx, dword [esp + 0x14]
push ecx
push ebx
mov ecx, ebp
call fcn.0050d360
jmp 0x50d8c9