Function at 0x51eb40
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0xcec
push ebx
push ebp
push esi
mov ebx, ecx
push edi
mov esi, edx
xor edi, edi
mov edx, 0x3e7
lea ecx, [esp + 0x40]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x28], edi
mov dword [ebx + 0x1c3c], edi
call fcn.00420e60
mov edx, 0x3e7
lea ecx, [esp + 0x428]
call fcn.00420e60
mov edx, 0x3e7
lea ecx, [esp + 0x810]
call fcn.00420e60
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 0x51eb97
mov edx, dword [esp + 0xd00]
mov dword [ebx + 0x3f0], edx
lea eax, [ebx + 0x640]
lea esi, [ebx + 0x744]
lea edx, [ebx + 0xbf3]
mov dword [esp + 0x30], 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 0x51ec97
cmp byte [ebx + 0x470], 0
push ebx
lea ecx, [ebx + 0x470]
push edx
push eax
je 0x51ec78
xor edx, edx
call fcn.0051a480
push eax
push 0x5a4998
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
mov ebp, dword [ebx + 0x5d8]
add esp, 0xc
mov edx, 0x104
lea ecx, [esp + 0xbf8]
call fcn.00420e60
xor ecx, ecx
call fcn.00522440
test eax, eax
je 0x51ec61
mov esi, dword [eax + 0x168]
test esi, esi
je 0x51ec61
mov eax, dword [esi + 0x28]
test eax, eax
jne 0x51ec5a
mov ecx, dword [esi]
lea eax, [esp + 0xbf8]
push eax
push ebx
push 0
push 0
push ebp
mov edx, edi
call fcn.0051a190
test eax, eax
jne 0x51ec61
mov esi, dword [esi + 0x40]
test esi, esi
jne 0x51ec38
mov eax, dword [0x5bfd70]
test eax, eax
mov dword [esp + 0x30], eax
jge 0x51ecbe
mov dword [esp + 0x30], 0
jmp 0x51ecbe
mov edx, dword [ebx + 0x5d8]
mov ecx, edi
call fcn.0051a480
push eax
push 0x5a4998
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x51ecbe
mov ecx, dword [0x5bfd70]
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
push ecx
push 0x5a4998
push eax
call edi
mov edx, dword [0x5bfd70]
push edx
push 0x5a4998
push esi
call edi
add esp, 0x18
mov eax, dword [0x5f3d20]
mov ecx, dword [esp + 0xd04]
xor esi, esi
cmp eax, esi
je 0x51ece5
cmp ecx, 1
jne 0x51ecdb
mov dword [eax + 0x150], esi
mov eax, dword [eax + 0x170]
cmp eax, esi
jne 0x51ecd0
mov ecx, dword [ebx + 0x3f8]
cmp ecx, esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], esi
je 0x51ed18
call fcn.005224b0
test eax, eax
je 0x51ed18
mov eax, dword [ebx + 0x3f8]
mov dword [esp + 0x24], 1
mov dword [esp + 0x2c], eax
mov dword [ebx + 0x3f8], esi
mov ebp, dword [esp + 0xd00]
nop
mov edi, dword [ebp*4 + 0x5f3be8]
test edi, edi
mov dword [0x5f37fc], 0
mov dword [esp + 0x10], edi
je 0x51edf9
cmp dword [esp + 0x24], 1
jne 0x51ed64
mov eax, dword [esp + 0x2c]
cmp dword [edi + 0x2c], eax
je 0x51ed60
mov edi, dword [edi + 0x34]
test edi, edi
jne 0x51ed48
mov dword [esp + 0x10], edi
jmp 0x51ee00
mov edi, dword [edi + 0x34]
mov dword [esp + 0x10], edi
test edi, edi
je 0x51edf9
lea esp, [esp]
mov ecx, dword [edi + 0x2c]
call fcn.005224b0
test eax, eax
je 0x51edf9
mov eax, dword [ebx + 0x1c3c]
test eax, eax
je 0x51eda0
mov ecx, dword [edi + 0x2c]
lea esp, [esp]
cmp dword [eax + 0x2c], ecx
je 0x51ee3c
mov eax, dword [eax + 0x40]
test eax, eax
jne 0x51ed90
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x51ee4d
mov ecx, dword [edi + 0x2c]
call fcn.005224b0
test eax, eax
je 0x51edf5
mov ecx, dword [ebx + 0x1c3c]
mov esi, dword [edi + 0x2c]
mov eax, ecx
test eax, eax
je 0x51edd2
cmp dword [eax + 0x2c], esi
je 0x51edee
mov eax, dword [eax + 0x40]
test eax, eax
jne 0x51edc6
push 0
mov edx, 0x5a4bec
call fcn.004d38f0
test eax, eax
je 0x51edf5
mov dword [ebx + 0x1c3c], eax
mov ecx, dword [eax + 0x44]
mov dword [ecx + 0x2c], esi
mov edi, dword [edi + 0x40]
test edi, edi
jne 0x51eda0
mov dword [esp + 0x10], edi
cmp dword [esp + 0x24], 1
jne 0x51ee1b
mov edi, dword [ebp*4 + 0x5f3be8]
test edi, edi
mov dword [esp + 0x24], 2
mov dword [esp + 0x10], edi
jne 0x51ed70
lea ecx, [ebx + 0x1c3c]
call fcn.004d3d60
lea ecx, [esp + 0x28]
call fcn.004d3d60
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xcec
ret 8
mov edi, dword [edi + 0x34]
test edi, edi
mov dword [esp + 0x10], edi
jne 0x51ed70
jmp 0x51edf9
cmp ebp, 0x41
mov dword [esp + 0x10], edi
jne 0x51ee72
mov eax, dword [edi + 0x2c]
cmp dword [eax + 0x158], 1
jne 0x51ed5d
mov dword [eax + 0x158], 2
jmp 0x51ee91
cmp ebp, 0x24
jne 0x51ee91
mov eax, dword [edi + 0x2c]
cmp dword [eax + 0x154], 1
jne 0x51ed5d
mov dword [eax + 0x154], 2
mov ecx, dword [edi + 0x2c]
call fcn.00419500
test eax, eax
je 0x51eec3
mov esi, dword [esp + 0x28]
test esi, esi
je 0x51eec3
mov edx, dword [edi + 0x2c]
mov eax, dword [esi]
push edx
push eax
call fcn.005a299c
add esp, 8
test eax, eax
je 0x51ed5d
mov esi, dword [esi + 0x40]
test esi, esi
jne 0x51eea5
xor esi, esi
lea ecx, [ebx + 0x146c]
mov edx, 0x3e7
mov dword [esp + 0x38], esi
call fcn.00420e60
lea ecx, [ebx + 0x1853]
mov edx, 0x3e7
call fcn.00420e60
lea ecx, [ebx + 0x4d4]
mov edx, 0x104
call fcn.00420e60
lea ecx, [ebx + 0x80c]
mov edx, 0x3e7
call fcn.00420e60
mov byte [ebx + 0x7a8], 0
mov byte [ebx + 0x7da], 0
mov dword [esp + 0x14], esi
mov dword [ebx + 0x3f4], 0xffffffff
mov dword [ebx + 0x3fc], 1
nop
mov eax, dword [esp + 0x24]
cmp eax, 1
jne 0x51ef48
mov ecx, dword [esp + 0x2c]
cmp dword [edi + 0x2c], ecx
jne 0x51ee00
jmp 0x51ef5a
cmp eax, 2
jne 0x51ef5a
mov edx, dword [esp + 0x2c]
cmp dword [edi + 0x2c], edx
je 0x51ed5d
mov eax, dword [edi + 0x2c]
mov ecx, dword [ebx + 0x1c3c]
mov dword [ebx + 0x3f8], eax
mov esi, dword [edi + 0x2c]
mov eax, ecx
xor edx, edx
cmp eax, edx
je 0x51ef80
cmp dword [eax + 0x2c], esi
je 0x51efa2
mov eax, dword [eax + 0x40]
cmp eax, edx
jne 0x51ef74
push 0
mov edx, 0x5a4bec
call fcn.004d38f0
test eax, eax
je 0x51edf9
mov dword [ebx + 0x1c3c], eax
mov ecx, dword [eax + 0x44]
mov dword [ecx + 0x2c], esi
xor edx, edx
cmp ebp, 0x48
mov eax, dword [edi + 0x30]
mov ecx, dword [eax + 0x40]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x34], edx
mov dword [ebx + 0x400], edx
mov dword [ebx + 0x404], edx
mov dword [ebx + 0x408], edx
jne 0x51f0a4
mov eax, dword [ebx + 0x3f8]
cmp dword [eax + 0x14c], 1
jne 0x51f879
mov dword [eax + 0x14c], 2
mov eax, dword [edi + 0x30]
mov ecx, dword [esp + 0xd04]
cmp dword [eax + 8], ecx
jne 0x51f879
mov ecx, dword [eax]
lea edx, [esp + 0x428]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51f004
cmp byte [esp + 0x428], 0x20
lea esi, [esp + 0x428]
jne 0x51f028
nop
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x51f020
cmp byte [esi], 0
je 0x51f879
add esi, 3
cmp byte [esi], 0x20
jne 0x51f048
lea esp, [esp]
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x51f040
mov al, byte [esi]
test al, al
je 0x51f879
cmp al, 0x6d
je 0x51f05e
cmp al, 0x4d
jne 0x51f331
push 3
push 0x5ac2b4
push esi
call fcn.005a2a05
add esp, 0xc
test eax, eax
jne 0x51f331
mov ecx, dword [ebx + 0x1c44]
call fcn.004f0af0
test eax, eax
je 0x51f2f9
mov eax, dword [ebx + 0x1c44]
mov edx, dword [eax + 0xf2c]
imul edx, edx, 0x64
lea eax, [edx + eax + 0xe00]
jmp 0x51f2fe
cmp ebp, 0x1d
jne 0x51f0ce
cmp dword [esp + 0xd04], edx
jne 0x51efe8
mov edx, dword [ebx + 0x3f8]
cmp dword [edx + 0x150], 2
je 0x51f879
jmp 0x51efe8
cmp ebp, 2
jne 0x51f2a9
mov esi, dword [edi + 0x30]
cmp dword [esi + 0x20], edx
je 0x51f0f6
lea eax, [ebx + 8]
push eax
call fcn.0059164b
mov ecx, dword [esi + 0x20]
add esp, 4
cmp ecx, eax
jne 0x51f879
mov ecx, dword [esi]
lea edx, [esp + 0x428]
nop
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51f100
cmp byte [esp + 0x428], 0x20
lea esi, [esp + 0x428]
jne 0x51f128
jmp 0x51f120
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x51f120
cmp byte [esi], 0
je 0x51f879
mov al, byte [esi + 4]
add esi, 4
cmp al, 0x20
jne 0x51f148
jmp 0x51f140
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x51f140
cmp byte [esi], 0
je 0x51f879
mov edx, ebx
mov ecx, esi
call fcn.0051ad50
mov ebp, eax
test ebp, ebp
jne 0x51f165
mov ebp, str.__return
cmp byte [esi], 0x20
jne 0x51f178
lea ebx, [ebx]
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x51f170
cmp byte [esi], 0x26
jne 0x51f187
cmp dword [ebx], 0
jne 0x51f879
inc esi
mov al, byte [esi]
test al, al
je 0x51f879
cmp al, 0x24
jne 0x51f1ae
cmp byte [esi + 1], 0x28
jne 0x51f1ae
push ebx
push 0
lea edx, [esp + 0x818]
mov ecx, esi
call fcn.0051a690
jmp 0x51f1c2
cmp al, 0x25
jne 0x51f1d1
push 0
lea edx, [esp + 0x814]
mov ecx, esi
call fcn.0055d5e0
test eax, eax
je 0x51f879
lea esi, [esp + 0x810]
push 0x24
push esi
call fcn.005912e0
add esp, 8
test eax, eax
je 0x51f1f6
mov edx, 0x5a9540
mov ecx, esi
mov dword [ebx + 0x408], 1
call fcn.00537830
mov al, byte [esi]
cmp al, 0x2a
jne 0x51f203
mov cl, byte [esi + 1]
test cl, cl
je 0x51f22b
movzx ecx, al
push ecx
call fcn.005920a7
add esp, 4
test eax, eax
je 0x51f23f
lea edx, [ebx + 8]
push edx
call fcn.0059164b
push esi
mov edi, eax
call fcn.0059164b
add esp, 8
cmp eax, edi
jne 0x51f23f
lea edx, [esp + 0x40]
mov eax, ebp
sub edx, ebp
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51f233
jmp 0x51f27b
movzx edx, byte [ebx + 8]
lea edi, [ebx + 8]
push edx
call fcn.005920a7
add esp, 4
test eax, eax
jne 0x51f879
push edi
push esi
call fcn.005a299c
add esp, 8
test eax, eax
jne 0x51f879
lea edx, [esp + 0x40]
mov eax, ebp
sub edx, ebp
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51f271
mov eax, dword [esp + 0x1c]
push ebx
push eax
lea ecx, [esp + 0x1c]
push ecx
lea eax, [ebx + 0x1853]
push eax
lea edx, [ebx + 0x146c]
lea ecx, [esp + 0x50]
call fcn.0051ae60
mov al, byte [ebx + 0x7da]
test al, al
jmp 0x51f873
cmp ebp, 1
jne 0x51efe8
mov edx, dword [edi + 0x30]
mov ecx, dword [edx]
lea edx, [esp + 0x428]
mov edi, edi
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x51f2c0
cmp byte [esp + 0x428], 0x20
lea esi, [esp + 0x428]
jne 0x51f2e8
jmp 0x51f2e0
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x51f2e0
cmp byte [esi], 0
je 0x51f879
add esi, 5
jmp 0x51f034
mov eax, 0x5a4bec
push eax
lea eax, [ebx + 0x40c]
push eax
call fcn.005a299c
add esp, 8
test eax, eax
jne 0x51f879
mov al, byte [esi + 3]
add esi, 3
cmp al, 0x20
jne 0x51f328
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x51f320
cmp byte [esi], 0
je 0x51f879
push 0x3a
push esi
call fcn.005912e0
add esp, 8
test eax, eax
je 0x51f879
mov byte [eax], 0
mov cl, byte [eax + 1]
inc eax
cmp cl, 0x20
mov dword [esp + 0x20], eax
jne 0x51f361
mov cl, byte [eax + 1]
inc eax
cmp cl, 0x20
je 0x51f354
mov dword [esp + 0x20], eax
cmp byte [eax], 0
je 0x51f879
mov ebp, dword [esp + 0x30]
test ebp, ebp
je 0x51f437
mov al, byte [ebx + 0x744]
test al, al
lea edi, [ebx + 0x744]
je 0x51f437
movzx ecx, al
push ecx
call fcn.005920a7
add esp, 4
test eax, eax
je 0x51f437
push edi
call fcn.0059164b
push 0x3e
push esi
mov edi, eax
call fcn.005912e0
add esp, 0xc
test eax, eax
je 0x51f3f1
push 0x3d
push esi
call fcn.005912e0
add esp, 8
test eax, eax
je 0x51f3ce
cmp edi, ebp
jg 0x51f879
jmp 0x51f437
push 0x3c
push esi
call fcn.005912e0
add esp, 8
test eax, eax
je 0x51f3e7
cmp edi, ebp
je 0x51f879
jmp 0x51f437
cmp edi, ebp
jge 0x51f879
jmp 0x51f437
push 0x3c
push esi
call fcn.005912e0
add esp, 8
test eax, eax
push 0x3d
push esi
je 0x51f423
call fcn.005912e0
add esp, 8
test eax, eax
je 0x51f419
cmp edi, ebp
jl 0x51f879
jmp 0x51f437
cmp edi, ebp
jle 0x51f879
jmp 0x51f437
call fcn.005912e0
add esp, 8
test eax, eax
je 0x51f437
cmp edi, ebp
jne 0x51f879
push 0x26
push esi
call fcn.005912e0
add esp, 8
test eax, eax
je 0x51f44f
cmp dword [ebx], 0
jne 0x51f879
push 0x2b
push esi
call fcn.005912e0
add esp, 8
test eax, eax
mov edi, 1
je 0x51f467
mov dword [esp + 0x34], edi
push 0x21
push esi
call fcn.005912e0
add esp, 8
test eax, eax
je 0x51f47c
mov dword [ebx + 0x400], edi
push 0x40
push esi
call fcn.005912e0
add esp, 8
test eax, eax
je 0x51f491
mov dword [ebx + 0x404], edi
push 0x24
push esi
call fcn.005912e0
add esp, 8
test eax, eax
je 0x51f4a6
mov dword [ebx + 0x408], edi
cmp byte [esi], 0
mov byte [ebx + 0x776], 0
mov ecx, esi
je 0x51f532
cmp ecx, dword [esp + 0x20]
jae 0x51f532
mov al, byte [ecx]
cmp al, 0x24
je 0x51f4dc
cmp al, 0x26
je 0x51f4dc
cmp al, 0x2b
je 0x51f4dc
cmp al, 0x40
je 0x51f4dc
cmp al, 0x21
je 0x51f4dc
cmp al, 0x2a
je 0x51f4dc
cmp al, 0x5e
je 0x51f4dc
cmp al, 0x20
jne 0x51f4e6
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x51f4b4
jmp 0x51f532
mov eax, ecx
lea edi, [eax + 1]
jmp 0x51f4f0
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x51f4f0
sub eax, edi
cmp eax, 0x23
jbe 0x51f501
mov byte [ecx + 0x23], dl
lea edx, [ebx + 0x776]
mov eax, ecx
sub edx, ecx
jmp 0x51f510
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x51f510
lea eax, [ebx + 0x776]
push 0x21
push eax
call fcn.005912e0
add esp, 8
test eax, eax
je 0x51f532
mov byte [eax], 0
mov al, byte [ebx + 0x7da]
test al, al
jne 0x51f55b
push 0x2a
push esi
call fcn.005912e0
add esp, 8
test eax, eax
je 0x51f55b
add ebx, 0x776
mov word [ebx], 0x2a
jmp 0x51f6a4
mov al, byte [ebx + 0x776]
test al, al
je 0x51f879
lea esi, [ebx + 0x640]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51f574
sub eax, edx
add eax, esi
mov dword [esp + 0x3c], eax
xor ebx, ebx
cmp byte [esi], 0x20
jne 0x51f598
lea ebx, [ebx]
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x51f590
mov al, byte [esi]
test al, al
je 0x51f879
cmp al, 0x3d
jne 0x51f5ad
mov ebx, 1
jmp 0x51f5b9
cmp al, 0x2b
jne 0x51f5c6
mov dword [esp + 0x34], 1
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x51f5a2
jmp 0x51f879
cmp byte [esi], 0
je 0x51f879
push 0x2c
push esi
call fcn.005912e0
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x51f5e4
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 [edx + eax], cl
inc eax
test cl, cl
jne 0x51f5f4
mov eax, dword [esp + 0x18]
movzx edx, byte [eax + 0x776]
add eax, 0x776
push edx
call fcn.005920a7
add esp, 4
test eax, eax
je 0x51f6ed
movzx eax, byte [edi]
push eax
call fcn.005920a7
add esp, 4
test eax, eax
je 0x51f714
push edi
call fcn.0059164b
mov edi, eax
mov eax, dword [esp + 0x1c]
add eax, 0x776
push eax
call fcn.0059164b
mov esi, eax
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0x7da]
add eax, 0x7da
add esp, 8
test cl, cl
je 0x51f676
mov eax, dword [esp + 0x18]
add eax, 0x7da
push eax
call fcn.0059164b
add esp, 4
jmp 0x51f678
xor eax, eax
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x51f688
cmp edi, esi
jne 0x51f714
cmp esi, eax
jle 0x51f714
test ebx, ebx
je 0x51f698
cmp edi, esi
jmp 0x51f712
cmp edi, esi
jl 0x51f714
test ebp, ebp
je 0x51f6a4
mov byte [ebp], 0x2c
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x20]
mov edx, ebx
mov ecx, esi
call fcn.0051ad50
mov ebp, eax
test ebp, ebp
jne 0x51f6c0
mov ebp, str.__return
cmp dword [esp + 0xd00], 1
jne 0x51fa0f
mov al, byte [esi]
cmp al, 0x24
jne 0x51f740
cmp byte [esi + 1], 0x28
jne 0x51f740
push ebx
push 0
lea edx, [esp + 0x818]
mov ecx, esi
call fcn.0051a690
jmp 0x51f754
movzx ecx, byte [edi]
push ecx
call fcn.005920a7
add esp, 4
test eax, eax
jne 0x51f714
mov eax, dword [esp + 0x18]
add eax, 0x776
push esi
push eax
call fcn.005a299c
add esp, 8
test eax, eax
je 0x51f69c
test ebp, ebp
je 0x51f879
lea esi, [ebp + 1]
mov byte [ebp], 0x2c
cmp byte [esi], 0
je 0x51f879
cmp esi, dword [esp + 0x3c]
jae 0x51f879
mov ebx, 1
jmp 0x51f585
cmp al, 0x25
jne 0x51f767
push 0
lea edx, [esp + 0x814]
mov ecx, esi
call fcn.0055d5e0
test eax, eax
je 0x51f879
lea esi, [esp + 0x810]
mov dword [esp + 0x20], esi
cmp byte [esi], 0x2a
jne 0x51f7c2
mov al, byte [esi + 1]
test al, al
jne 0x51f7c2
lea edx, [esp + 0x40]
mov eax, ebp
sub edx, ebp
jmp 0x51f780
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51f780
mov edx, dword [esp + 0x1c]
push ebx
push edx
lea eax, [esp + 0x1c]
push eax
lea eax, [ebx + 0x1853]
push eax
lea edx, [ebx + 0x146c]
lea ecx, [esp + 0x50]
call fcn.0051ae60
mov al, byte [ebx + 0x7da]
test al, al
je 0x51f879
movzx ecx, al
push ecx
jmp 0x51fa75
push 0x2a
push esi
call fcn.005912e0
add esp, 8
test eax, eax
jne 0x51f7e4
push 0x3f
push esi
call fcn.005912e0
add esp, 8
test eax, eax
je 0x51f93d
push ebx
lea edx, [ebx + 8]
mov ecx, esi
call fcn.0051a770
test eax, eax
je 0x51f93d
lea edx, [esp + 0x40]
mov eax, ebp
sub edx, ebp
nop
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51f800
mov esi, dword [esp + 0x1c]
push ebx
push esi
lea edx, [esp + 0x1c]
push edx
lea eax, [ebx + 0x1853]
push eax
lea edx, [ebx + 0x146c]
lea ecx, [esp + 0x50]
call fcn.0051ae60
mov al, byte [ebx + 0x7da]
test al, al
je 0x51f84d
movzx eax, al
push eax
call fcn.005920a7
add esp, 4
test eax, eax
jne 0x51f84d
mov dword [esp + 0x38], 1
cmp dword [esp + 0x14], esi
jne 0x51f86d
lea edx, [ebx + 0x80c]
lea ecx, [esp + 0x40]
lea eax, [esp + 0x40]
sub edx, ecx
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51f863
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x51fa85
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x40]
test eax, eax
mov ebx, dword [esp + 0x18]
je 0x51fad9
mov ecx, dword [eax + 0x2c]
cmp ecx, dword [ebx + 0x3f8]
je 0x51f8a5
mov cl, byte [ebx + 0x7da]
test cl, cl
jne 0x51fa89
mov ecx, dword [ebx + 0x3fc]
test ecx, ecx
je 0x51fb07
mov edi, eax
test edi, edi
mov dword [esp + 0x10], edi
je 0x51f931
lea ecx, [ecx]
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x51facd
mov eax, dword [edi + 0x40]
test eax, eax
je 0x51fb21
mov esi, dword [edi + 0x2c]
cmp dword [eax + 0x2c], esi
je 0x51f926
mov ecx, dword [ebx + 0x1c3c]
mov eax, ecx
test eax, eax
je 0x51f8fc
lea ebx, [ebx]
cmp dword [eax + 0x2c], esi
je 0x51f918
mov eax, dword [eax + 0x40]
test eax, eax
jne 0x51f8f0
push 0
mov edx, 0x5a4bec
call fcn.004d38f0
test eax, eax
je 0x51f931
mov dword [ebx + 0x1c3c], eax
mov edx, dword [eax + 0x44]
mov dword [edx + 0x2c], esi
mov al, byte [ebx + 0x7da]
test al, al
jne 0x51fa89
mov edi, dword [edi + 0x40]
test edi, edi
mov dword [esp + 0x10], edi
jne 0x51f8c0
mov ebp, dword [esp + 0xd00]
jmp 0x51edf9
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51f942
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 0x51f955
sub eax, edx
cmp eax, edi
jb 0x51f879
mov edx, dword [esp + 0x20]
push edi
push esi
push edx
call fcn.005a2a05
add esp, 0xc
test eax, eax
jne 0x51f879
mov al, byte [edi + esi]
test al, al
je 0x51f98c
cmp al, 0x20
jne 0x51f879
lea edx, [esp + 0x40]
mov eax, ebp
sub edx, ebp
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51f994
mov esi, dword [esp + 0x1c]
push ebx
push esi
lea eax, [esp + 0x1c]
push eax
lea eax, [ebx + 0x1853]
push eax
lea edx, [ebx + 0x146c]
lea ecx, [esp + 0x50]
call fcn.0051ae60
mov al, byte [ebx + 0x7da]
test al, al
je 0x51f9e1
movzx ecx, al
push ecx
call fcn.005920a7
add esp, 4
test eax, eax
jne 0x51f9e1
mov dword [esp + 0x38], 1
cmp dword [esp + 0x14], esi
jne 0x51f86d
lea edx, [ebx + 0x80c]
lea ecx, [esp + 0x40]
lea eax, [esp + 0x40]
sub edx, ecx
jmp 0x51fa00
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51fa00
jmp 0x51f86d
cmp byte [esi], 0x2a
jne 0x51fa1b
mov al, byte [esi + 1]
test al, al
je 0x51fa30
lea edx, [ebx + 8]
push edx
push esi
call fcn.005a299c
add esp, 8
test eax, eax
jne 0x51f879
lea edx, [esp + 0x40]
mov eax, ebp
sub edx, ebp
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51fa38
mov eax, dword [esp + 0x1c]
push ebx
push eax
lea ecx, [esp + 0x1c]
push ecx
lea eax, [ebx + 0x1853]
push eax
lea edx, [ebx + 0x146c]
lea ecx, [esp + 0x50]
call fcn.0051ae60
mov al, byte [ebx + 0x7da]
test al, al
je 0x51f879
movzx edx, al
push edx
call fcn.005920a7
add esp, 4
test eax, eax
jne 0x51f879
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0xd00]
mov ecx, dword [ebx + 0x3f8]
call fcn.00419500
test eax, eax
je 0x51fb4f
mov edx, dword [ebx + 0x3f8]
mov ecx, dword [esp + 0x28]
mov esi, dword [edx + 0x16c]
push 0
push 1
call fcn.004d4440
test eax, eax
je 0x51edf9
mov dword [esp + 0x28], eax
jmp 0x51fb51
mov ebp, dword [esp + 0xd00]
jmp 0x51ef30
mov al, byte [ebx + 0x7da]
test al, al
mov ebp, dword [esp + 0xd00]
je 0x51edf9
mov eax, dword [esp + 0xd04]
mov edx, dword [esp + 0x14]
push eax
push ebx
mov ecx, ebp
call fcn.0051e830
jmp 0x51edf9
mov al, byte [ebx + 0x7da]
test al, al
mov ebp, dword [esp + 0xd00]
jne 0x51fa90
jmp 0x51ed5d
mov al, byte [ebx + 0x7da]
test al, al
je 0x51f931
mov ecx, dword [esp + 0xd04]
mov ebp, dword [esp + 0xd00]
mov edx, dword [esp + 0x14]
push ecx
push ebx
mov ecx, ebp
call fcn.0051e830
jmp 0x51edf9
xor esi, esi
mov edx, dword [esp + 0xd04]
push edx
mov edx, dword [esp + 0x18]
push ebx
mov ecx, ebp
call fcn.0051e830
test esi, esi
je 0x51fb7c
mov ecx, esi
call fcn.00419490
cmp dword [ebx + 0x3f8], eax
jne 0x51ed20
mov eax, dword [0x5f37fc]
test eax, eax
jne 0x51ed20
mov ecx, dword [ebx + 0x3f8]
call fcn.005224b0
test eax, eax
je 0x51ed20
mov ecx, edi
call fcn.00522220
test eax, eax
je 0x51ed20
jmp 0x51ed5d