Function at 0x531d30
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0xce8
push ebx
mov ebx, dword [esp + 0xcf0]
push ebp
push esi
push edi
lea eax, [esp + 0x3c]
xor edi, edi
push 0x3e7
push eax
mov dword [esp + 0x30], edi
mov dword [ebx + 0x1c3c], edi
call fcn.00423a00
lea ecx, [esp + 0x42c]
push 0x3e7
push ecx
call fcn.00423a00
lea edx, [esp + 0x81c]
push 0x3e7
push edx
call fcn.00423a00
mov eax, dword [esp + 0xd18]
mov ecx, ebx
add esp, 0x18
sub ecx, eax
lea edx, [ecx + 8]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x531d91
mov edx, dword [esp + 0xd04]
mov dword [esp + 0x18], edi
lea eax, [ebx + 0x640]
lea esi, [ebx + 0x744]
lea edi, [ebx + 0x40c]
mov dword [ebx + 0x3f0], edx
cmp byte [edi], 0
mov byte [eax], cl
mov byte [esi], cl
mov byte [ebx + 0x776], cl
lea ecx, [ebx + 0xbf3]
mov byte [ecx], 0
je 0x531e97
cmp byte [ebx + 0x470], 0
push ebx
lea edx, [ebx + 0x470]
push ecx
push eax
je 0x531e78
push 0
push edx
call fcn.0052d170
push eax
push 0x5e6a4c
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
mov ebp, dword [ebx + 0x5d8]
lea eax, [esp + 0xc14]
push 0x104
push eax
call fcn.00423a00
push 0
call fcn.00535880
add esp, 0x2c
test eax, eax
je 0x531e61
mov esi, dword [eax + 0x168]
test esi, esi
je 0x531e61
mov eax, dword [esi + 0x28]
test eax, eax
jne 0x531e5a
mov edx, dword [esi]
lea ecx, [esp + 0xbf4]
push ecx
push ebx
push 0
push 0
push ebp
push edi
push edx
call fcn.0052ce70
add esp, 0x1c
test eax, eax
jne 0x531e61
mov esi, dword [esi + 0x40]
test esi, esi
jne 0x531e35
mov eax, dword [0x609e2c]
test eax, eax
mov dword [esp + 0x18], eax
jge 0x531ebe
mov dword [esp + 0x18], 0
jmp 0x531ebe
mov eax, dword [ebx + 0x5d8]
push eax
push edi
call fcn.0052d170
push eax
push 0x5e6a4c
push esi
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x20
jmp 0x531ebe
mov ecx, dword [0x609e2c]
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
push ecx
push 0x5e6a4c
push eax
call edi
mov edx, dword [0x609e2c]
push edx
push 0x5e6a4c
push esi
call edi
add esp, 0x18
mov eax, dword [0x6402e4]
mov ecx, dword [esp + 0xd08]
xor esi, esi
cmp eax, esi
je 0x531ee5
cmp ecx, 1
jne 0x531edb
mov dword [eax + 0x150], esi
mov eax, dword [eax + 0x170]
cmp eax, esi
jne 0x531ed0
mov eax, dword [ebx + 0x3f8]
cmp eax, esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], esi
je 0x531f1c
push eax
call fcn.005358f0
add esp, 4
test eax, eax
je 0x531f1c
mov eax, dword [ebx + 0x3f8]
mov dword [esp + 0x24], 1
mov dword [esp + 0x2c], eax
mov dword [ebx + 0x3f8], esi
mov ebp, dword [esp + 0xd04]
mov edi, dword [ebp*4 + 0x6401a8]
test edi, edi
mov dword [0x63fdbc], 0
mov dword [esp + 0x10], edi
je 0x53201d
cmp dword [esp + 0x24], 1
jne 0x531f6c
mov eax, dword [esp + 0x2c]
jmp 0x531f50
cmp dword [edi + 0x2c], eax
je 0x531f68
mov edi, dword [edi + 0x34]
test edi, edi
jne 0x531f50
mov dword [esp + 0x10], edi
jmp 0x532024
mov edi, dword [edi + 0x34]
mov dword [esp + 0x10], edi
test edi, edi
je 0x53201d
mov ecx, dword [edi + 0x2c]
push ecx
call fcn.005358f0
add esp, 4
test eax, eax
je 0x53201d
test ebx, ebx
mov ecx, dword [edi + 0x2c]
je 0x531fb0
test ecx, ecx
je 0x531fb0
mov eax, dword [ebx + 0x1c3c]
test eax, eax
je 0x531fb0
lea ecx, [ecx]
cmp dword [eax + 0x2c], ecx
je 0x532063
mov eax, dword [eax + 0x40]
test eax, eax
jne 0x531fa0
test edi, edi
je 0x53201d
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x532074
mov edx, dword [edi + 0x2c]
push edx
call fcn.005358f0
add esp, 4
test eax, eax
je 0x532019
test ebx, ebx
mov esi, dword [edi + 0x2c]
je 0x532019
test esi, esi
je 0x532019
mov ecx, dword [ebx + 0x1c3c]
mov eax, ecx
test eax, eax
je 0x531ff2
cmp dword [eax + 0x2c], esi
je 0x532012
mov eax, dword [eax + 0x40]
test eax, eax
jne 0x531fe6
push 0
push 0x5e6c98
push ecx
call fcn.004e2f90
add esp, 0xc
test eax, eax
je 0x532019
mov dword [ebx + 0x1c3c], eax
mov eax, dword [eax + 0x44]
mov dword [eax + 0x2c], esi
mov edi, dword [edi + 0x40]
test edi, edi
jne 0x531fb4
mov dword [esp + 0x10], edi
cmp dword [esp + 0x24], 1
jne 0x53203f
mov edi, dword [ebp*4 + 0x6401a8]
test edi, edi
mov dword [esp + 0x24], 2
mov dword [esp + 0x10], edi
jne 0x531f74
add ebx, 0x1c3c
push ebx
call fcn.004e33a0
lea eax, [esp + 0x2c]
push eax
call fcn.004e33a0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xce8
ret
mov edi, dword [edi + 0x34]
test edi, edi
mov dword [esp + 0x10], edi
jne 0x531f74
jmp 0x53201d
cmp ebp, 0x41
mov dword [esp + 0x10], edi
jne 0x532099
mov eax, dword [edi + 0x2c]
cmp dword [eax + 0x158], 1
jne 0x531f65
mov dword [eax + 0x158], 2
jmp 0x5320b8
cmp ebp, 0x24
jne 0x5320b8
mov eax, dword [edi + 0x2c]
cmp dword [eax + 0x154], 1
jne 0x531f65
mov dword [eax + 0x154], 2
mov ecx, dword [edi + 0x2c]
push ecx
call fcn.0041ba20
add esp, 4
test eax, eax
je 0x5320ee
mov esi, dword [esp + 0x28]
test esi, esi
je 0x5320ee
mov edx, dword [edi + 0x2c]
mov eax, dword [esi]
push edx
push eax
call fcn.005e31f5
add esp, 8
test eax, eax
je 0x531f65
mov esi, dword [esi + 0x40]
test esi, esi
jne 0x5320d0
lea eax, [ebx + 0x146c]
push 0x3e7
xor esi, esi
push eax
mov dword [esp + 0x3c], esi
call fcn.00423a00
lea eax, [ebx + 0x1853]
push 0x3e7
push eax
call fcn.00423a00
lea ecx, [ebx + 0x4d4]
push 0x104
push ecx
call fcn.00423a00
lea eax, [ebx + 0x80c]
push 0x3e7
push eax
call fcn.00423a00
add esp, 0x20
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
mov eax, dword [esp + 0x24]
cmp eax, 1
jne 0x532179
mov edx, dword [esp + 0x2c]
cmp dword [edi + 0x2c], edx
jne 0x532024
jmp 0x53218b
cmp eax, 2
jne 0x53218b
mov eax, dword [esp + 0x2c]
cmp dword [edi + 0x2c], eax
je 0x531f65
mov ecx, dword [edi + 0x2c]
mov dword [ebx + 0x3f8], ecx
mov esi, dword [edi + 0x2c]
xor edx, edx
cmp esi, edx
je 0x53201d
mov ecx, dword [ebx + 0x1c3c]
mov eax, ecx
cmp eax, edx
je 0x5321bc
lea ecx, [ecx]
cmp dword [eax + 0x2c], esi
je 0x5321e2
mov eax, dword [eax + 0x40]
cmp eax, edx
jne 0x5321b0
push 0
push 0x5e6c98
push ecx
call fcn.004e2f90
add esp, 0xc
test eax, eax
je 0x53201d
mov dword [ebx + 0x1c3c], eax
mov edx, dword [eax + 0x44]
mov dword [edx + 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 + 0x30], edx
mov dword [ebx + 0x400], edx
mov dword [ebx + 0x404], edx
mov dword [ebx + 0x408], edx
jne 0x5322e8
mov eax, dword [ebx + 0x3f8]
cmp dword [eax + 0x14c], 1
jne 0x532ae6
mov dword [eax + 0x14c], 2
mov eax, dword [edi + 0x30]
mov ecx, dword [esp + 0xd08]
cmp dword [eax + 8], ecx
jne 0x532ae6
mov ecx, dword [eax]
lea edx, [esp + 0x424]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x532244
cmp byte [esp + 0x424], 0x20
lea esi, [esp + 0x424]
jne 0x532268
nop
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x532260
cmp byte [esi], 0
je 0x532ae6
add esi, 3
cmp byte [esi], 0x20
jne 0x532288
lea esp, [esp]
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x532280
mov al, byte [esi]
test al, al
je 0x532ae6
cmp al, 0x6d
je 0x53229e
cmp al, 0x4d
jne 0x5325a1
push 3
push 0x5ee9e0
push esi
call fcn.005e325e
add esp, 0xc
test eax, eax
jne 0x5325a1
mov edx, dword [ebx + 0x1c44]
push edx
call fcn.00502a60
add esp, 4
test eax, eax
je 0x532569
mov eax, dword [ebx + 0x1c44]
mov ecx, dword [eax + 0xf28]
imul ecx, ecx, 0x64
lea eax, [ecx + eax + 0xdfc]
jmp 0x53256e
cmp ebp, 0x1d
jne 0x532312
cmp dword [esp + 0xd08], edx
jne 0x532228
mov edx, dword [ebx + 0x3f8]
cmp dword [edx + 0x150], 2
je 0x532ae6
jmp 0x532228
cmp ebp, 2
jne 0x53251d
mov esi, dword [edi + 0x30]
cmp dword [esi + 0x20], edx
je 0x53233a
lea eax, [ebx + 8]
push eax
call fcn.005cbe51
mov ecx, dword [esi + 0x20]
add esp, 4
cmp ecx, eax
jne 0x532ae6
mov ecx, dword [esi]
lea edx, [esp + 0x424]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x532343
cmp byte [esp + 0x424], 0x20
lea esi, [esp + 0x424]
jne 0x532368
mov edi, edi
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x532360
cmp byte [esi], 0
je 0x532ae6
mov al, byte [esi + 4]
add esi, 4
cmp al, 0x20
jne 0x532388
jmp 0x532380
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x532380
cmp byte [esi], 0
je 0x532ae6
push ebx
push esi
call fcn.0052dab0
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x5323a6
mov ebp, str.__return
cmp byte [esi], 0x20
jne 0x5323b8
jmp 0x5323b0
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x5323b0
cmp byte [esi], 0x26
jne 0x5323c7
cmp dword [ebx], 0
jne 0x532ae6
inc esi
mov al, byte [esi]
test al, al
je 0x532ae6
cmp al, 0x24
jne 0x5323f1
cmp byte [esi + 1], 0x28
jne 0x5323f1
push ebx
push 0
lea ecx, [esp + 0x814]
push ecx
push esi
call fcn.0052d3a0
add esp, 0x10
jmp 0x532408
cmp al, 0x25
jne 0x532417
push 0
lea edx, [esp + 0x810]
push edx
push esi
call fcn.0057df60
add esp, 0xc
test eax, eax
je 0x532ae6
lea esi, [esp + 0x80c]
push 0x24
push esi
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x53243e
push 0x5ebd64
push esi
mov dword [ebx + 0x408], 1
call fcn.00551ea0
add esp, 8
mov al, byte [esi]
cmp al, 0x2a
jne 0x53244b
mov cl, byte [esi + 1]
test cl, cl
je 0x532473
movzx eax, al
push eax
call fcn.005cd445
add esp, 4
test eax, eax
je 0x5324aa
lea ecx, [ebx + 8]
push ecx
call fcn.005cbe51
push esi
mov edi, eax
call fcn.005cbe51
add esp, 8
cmp eax, edi
jne 0x5324aa
lea edx, [esp + 0x3c]
mov eax, ebp
sub edx, ebp
jmp 0x532480
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x532480
mov edx, dword [esp + 0x1c]
push ebx
push edx
lea eax, [esp + 0x1c]
push eax
lea eax, [ebx + 0x1853]
push eax
lea eax, [ebx + 0x146c]
push eax
lea ecx, [esp + 0x50]
push ecx
jmp 0x532508
movzx edx, byte [ebx + 8]
lea edi, [ebx + 8]
push edx
call fcn.005cd445
add esp, 4
test eax, eax
jne 0x532ae6
push edi
push esi
call fcn.005e31f5
add esp, 8
test eax, eax
jne 0x532ae6
lea edx, [esp + 0x3c]
mov eax, ebp
sub edx, ebp
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x5324e0
mov eax, dword [esp + 0x1c]
push ebx
push eax
lea ecx, [esp + 0x1c]
push ecx
lea eax, [ebx + 0x1853]
push eax
lea eax, [ebx + 0x146c]
push eax
lea edx, [esp + 0x50]
push edx
call fcn.0052dbe0
mov al, byte [ebx + 0x7da]
add esp, 0x18
test al, al
jmp 0x532ae0
cmp ebp, 1
jne 0x532228
mov eax, dword [edi + 0x30]
mov ecx, dword [eax]
lea edx, [esp + 0x424]
mov al, byte [ecx]
inc ecx
mov byte [edx], al
inc edx
test al, al
jne 0x532532
cmp byte [esp + 0x424], 0x20
lea esi, [esp + 0x424]
jne 0x532558
lea ecx, [ecx]
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x532550
cmp byte [esi], 0
je 0x532ae6
add esi, 5
jmp 0x532274
mov eax, 0x5e6c98
push eax
lea edx, [ebx + 0x40c]
push edx
call fcn.005e31f5
add esp, 8
test eax, eax
jne 0x532ae6
mov al, byte [esi + 3]
add esi, 3
cmp al, 0x20
jne 0x532598
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x532590
cmp byte [esi], 0
je 0x532ae6
push 0x3a
push esi
call fcn.005cbf10
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x532ae6
mov byte [ebp], 0
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x20
mov dword [esp + 0x20], ebp
jne 0x5325d2
mov al, byte [ebp + 1]
inc ebp
cmp al, 0x20
je 0x5325c6
mov dword [esp + 0x20], ebp
cmp byte [ebp], 0
je 0x532ae6
mov eax, dword [esp + 0x18]
test eax, eax
je 0x5326b5
mov al, byte [ebx + 0x744]
test al, al
lea edi, [ebx + 0x744]
je 0x5326b5
movzx eax, al
push eax
call fcn.005cd445
add esp, 4
test eax, eax
je 0x5326b5
push edi
call fcn.005cbe51
push 0x3e
push esi
mov edi, eax
call fcn.005cbf10
add esp, 0xc
test eax, eax
je 0x532669
push 0x3d
push esi
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x532642
cmp edi, dword [esp + 0x18]
jg 0x532ae6
jmp 0x5326b5
push 0x3c
push esi
call fcn.005cbf10
add esp, 8
test eax, eax
mov eax, dword [esp + 0x18]
je 0x53265f
cmp edi, eax
je 0x532ae6
jmp 0x5326b5
cmp edi, eax
jge 0x532ae6
jmp 0x5326b5
push 0x3c
push esi
call fcn.005cbf10
add esp, 8
test eax, eax
push 0x3d
push esi
je 0x53269f
call fcn.005cbf10
add esp, 8
test eax, eax
mov eax, dword [esp + 0x18]
je 0x532695
cmp edi, eax
jl 0x532ae6
jmp 0x5326b5
cmp edi, eax
jle 0x532ae6
jmp 0x5326b5
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x5326b5
cmp edi, dword [esp + 0x18]
jne 0x532ae6
push 0x26
push esi
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x5326cd
cmp dword [ebx], 0
jne 0x532ae6
push 0x2b
push esi
call fcn.005cbf10
add esp, 8
test eax, eax
mov edi, 1
je 0x5326e5
mov dword [esp + 0x30], edi
push 0x21
push esi
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x5326fa
mov dword [ebx + 0x400], edi
push 0x40
push esi
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x53270f
mov dword [ebx + 0x404], edi
push 0x24
push esi
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x532724
mov dword [ebx + 0x408], edi
cmp byte [esi], 0
mov byte [ebx + 0x776], 0
mov ecx, esi
je 0x5327a4
cmp ecx, ebp
jae 0x5327a4
mov al, byte [ecx]
cmp al, 0x24
je 0x532758
cmp al, 0x26
je 0x532758
cmp al, 0x2b
je 0x532758
cmp al, 0x40
je 0x532758
cmp al, 0x21
je 0x532758
cmp al, 0x2a
je 0x532758
cmp al, 0x5e
je 0x532758
cmp al, 0x20
jne 0x532762
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x532732
jmp 0x5327a4
mov eax, ecx
lea edi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x532767
sub eax, edi
cmp eax, 0x23
jbe 0x532778
mov byte [ecx + 0x23], dl
lea edx, [ebx + 0x776]
mov eax, ecx
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x532782
lea eax, [ebx + 0x776]
push 0x21
push eax
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x5327a4
mov byte [eax], 0
mov al, byte [ebx + 0x7da]
test al, al
jne 0x5327cd
push 0x2a
push esi
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x5327cd
add ebx, 0x776
mov word [ebx], 0x2a
jmp 0x53292a
mov al, byte [ebx + 0x776]
test al, al
je 0x532ae6
lea esi, [ebx + 0x640]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5327e6
sub eax, edx
add eax, esi
mov dword [esp + 0x38], eax
xor ebx, ebx
cmp byte [esi], 0x20
jne 0x532808
lea esp, [esp]
mov al, byte [esi + 1]
inc esi
cmp al, 0x20
je 0x532800
mov al, byte [esi]
test al, al
je 0x532ae6
cmp al, 0x3d
jne 0x53281d
mov ebx, 1
jmp 0x532829
cmp al, 0x2b
jne 0x532836
mov dword [esp + 0x30], 1
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x532812
jmp 0x532ae6
cmp byte [esi], 0
je 0x532ae6
push 0x2c
push esi
call fcn.005cbf10
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x532854
mov byte [ebp], 0
mov edi, dword [esp + 0xcfc]
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 0x532867
mov eax, dword [esp + 0xcfc]
movzx ecx, byte [eax + 0x776]
add eax, 0x776
push ecx
call fcn.005cd445
add esp, 4
test eax, eax
je 0x53297a
movzx edx, byte [edi]
push edx
call fcn.005cd445
add esp, 4
test eax, eax
je 0x5329a8
push edi
call fcn.005cbe51
mov edi, eax
mov eax, dword [esp + 0xd00]
add eax, 0x776
push eax
call fcn.005cbe51
mov esi, eax
mov eax, dword [esp + 0xd04]
mov cl, byte [eax + 0x7da]
add eax, 0x7da
add esp, 8
test cl, cl
je 0x5328f5
mov eax, dword [esp + 0xcfc]
add eax, 0x7da
push eax
call fcn.005cbe51
add esp, 4
jmp 0x5328f7
xor eax, eax
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x532907
cmp edi, esi
jne 0x5329a8
cmp esi, eax
jle 0x5329a8
test ebx, ebx
je 0x53291a
cmp edi, esi
jmp 0x5329a2
cmp edi, esi
jl 0x5329a8
test ebp, ebp
je 0x53292a
mov byte [ebp], 0x2c
mov ebx, dword [esp + 0xcfc]
mov esi, dword [esp + 0x20]
push ebx
push esi
call fcn.0052dab0
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x53294a
mov ebp, str.__return
cmp dword [esp + 0xd04], 1
jne 0x532c8f
mov al, byte [esi]
cmp al, 0x24
jne 0x5329d4
cmp byte [esi + 1], 0x28
jne 0x5329d4
push ebx
push 0
lea ecx, [esp + 0x814]
push ecx
push esi
call fcn.0052d3a0
add esp, 0x10
jmp 0x5329eb
movzx eax, byte [edi]
push eax
call fcn.005cd445
add esp, 4
test eax, eax
jne 0x5329a8
mov eax, dword [esp + 0xcfc]
add eax, 0x776
push esi
push eax
call fcn.005e31f5
add esp, 8
test eax, eax
je 0x532922
test ebp, ebp
je 0x532ae6
lea esi, [ebp + 1]
mov byte [ebp], 0x2c
cmp byte [esi], 0
je 0x532ae6
cmp esi, dword [esp + 0x38]
jae 0x532ae6
mov ebx, 1
jmp 0x5327f7
cmp al, 0x25
jne 0x5329fe
push 0
lea edx, [esp + 0x810]
push edx
push esi
call fcn.0057df60
add esp, 0xc
test eax, eax
je 0x532ae6
lea esi, [esp + 0x80c]
mov dword [esp + 0x20], esi
cmp byte [esi], 0x2a
jne 0x532a21
mov al, byte [esi + 1]
test al, al
jne 0x532a21
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 0x532a12
jmp 0x532cc2
push 0x2a
push esi
call fcn.005cbf10
add esp, 8
test eax, eax
jne 0x532a43
push 0x3f
push esi
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x532bb1
push ebx
lea ecx, [ebx + 8]
push ecx
push esi
call fcn.0052d480
add esp, 0xc
test eax, eax
je 0x532bb1
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 0x532a61
mov esi, dword [esp + 0x1c]
push ebx
push esi
lea edx, [esp + 0x1c]
push edx
lea eax, [ebx + 0x1853]
push eax
lea eax, [ebx + 0x146c]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.0052dbe0
mov al, byte [ebx + 0x7da]
add esp, 0x18
test al, al
je 0x532ab3
movzx ecx, al
push ecx
call fcn.005cd445
add esp, 4
test eax, eax
jne 0x532ab3
mov dword [esp + 0x34], 1
cmp dword [esp + 0x14], esi
jne 0x532ada
lea edx, [ebx + 0x80c]
lea ecx, [esp + 0x3c]
lea eax, [esp + 0x3c]
sub edx, ecx
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x532ad0
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x532d0a
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x40]
test eax, eax
mov ebx, dword [esp + 0xcfc]
je 0x532d67
mov ecx, dword [eax + 0x2c]
cmp ecx, dword [ebx + 0x3f8]
je 0x532b15
mov cl, byte [ebx + 0x7da]
test cl, cl
jne 0x532d0e
mov ecx, dword [ebx + 0x3fc]
test ecx, ecx
je 0x532d98
mov edi, eax
test edi, edi
mov dword [esp + 0x10], edi
je 0x532ba5
lea ecx, [ecx]
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x532d5b
mov eax, dword [edi + 0x40]
test eax, eax
je 0x532db2
mov esi, dword [edi + 0x2c]
cmp dword [eax + 0x2c], esi
je 0x532b9a
test esi, esi
je 0x532ba5
mov ecx, dword [ebx + 0x1c3c]
mov eax, ecx
test eax, eax
je 0x532b6c
mov edi, edi
cmp dword [eax + 0x2c], esi
je 0x532b8c
mov eax, dword [eax + 0x40]
test eax, eax
jne 0x532b60
push 0
push 0x5e6c98
push ecx
call fcn.004e2f90
add esp, 0xc
test eax, eax
je 0x532ba5
mov dword [ebx + 0x1c3c], eax
mov edx, dword [eax + 0x44]
mov dword [edx + 0x2c], esi
mov al, byte [ebx + 0x7da]
test al, al
jne 0x532d0e
mov edi, dword [edi + 0x40]
test edi, edi
mov dword [esp + 0x10], edi
jne 0x532b30
mov ebp, dword [esp + 0xd04]
jmp 0x53201d
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x532bb6
sub eax, edx
lea esi, [ebx + 8]
mov edi, eax
mov eax, esi
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x532bd0
sub eax, edx
cmp eax, edi
jb 0x532ae6
mov edx, dword [esp + 0x20]
push edi
push esi
push edx
call fcn.005e325e
add esp, 0xc
test eax, eax
jne 0x532ae6
mov al, byte [esi + edi]
test al, al
je 0x532c07
cmp al, 0x20
jne 0x532ae6
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 0x532c10
mov esi, dword [esp + 0x1c]
push ebx
push esi
lea eax, [esp + 0x1c]
push eax
lea eax, [ebx + 0x1853]
push eax
lea eax, [ebx + 0x146c]
push eax
lea ecx, [esp + 0x50]
push ecx
call fcn.0052dbe0
mov al, byte [ebx + 0x7da]
add esp, 0x18
test al, al
je 0x532c62
movzx edx, al
push edx
call fcn.005cd445
add esp, 4
test eax, eax
jne 0x532c62
mov dword [esp + 0x34], 1
cmp dword [esp + 0x14], esi
jne 0x532ada
lea edx, [ebx + 0x80c]
lea ecx, [esp + 0x3c]
lea eax, [esp + 0x3c]
sub edx, ecx
lea esp, [esp]
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x532c80
jmp 0x532ada
cmp byte [esi], 0x2a
jne 0x532c9b
mov al, byte [esi + 1]
test al, al
je 0x532cb0
lea edx, [ebx + 8]
push edx
push esi
call fcn.005e31f5
add esp, 8
test eax, eax
jne 0x532ae6
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 0x532cb8
mov eax, dword [esp + 0x1c]
push ebx
push eax
lea ecx, [esp + 0x1c]
push ecx
lea eax, [ebx + 0x1853]
push eax
lea eax, [ebx + 0x146c]
push eax
lea edx, [esp + 0x50]
push edx
call fcn.0052dbe0
mov al, byte [ebx + 0x7da]
add esp, 0x18
test al, al
je 0x532ae6
movzx eax, al
push eax
call fcn.005cd445
add esp, 4
test eax, eax
jne 0x532ae6
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0xd04]
mov ecx, dword [ebx + 0x3f8]
push ecx
call fcn.0041ba20
add esp, 4
test eax, eax
je 0x532de3
mov eax, dword [ebx + 0x3f8]
mov edx, dword [esp + 0x28]
mov esi, dword [eax + 0x16c]
push 0
push 1
push eax
push edx
call fcn.004e3ad0
add esp, 0x10
test eax, eax
je 0x53201d
mov dword [esp + 0x28], eax
jmp 0x532de5
mov ebp, dword [esp + 0xd04]
jmp 0x532161
mov al, byte [ebx + 0x7da]
test al, al
mov ebp, dword [esp + 0xd04]
je 0x53201d
mov eax, dword [esp + 0xd08]
mov ecx, dword [esp + 0x14]
push eax
push ebx
push ecx
push ebp
call fcn.005319e0
add esp, 0x10
jmp 0x53201d
mov al, byte [ebx + 0x7da]
test al, al
mov ebp, dword [esp + 0xd04]
jne 0x532d15
jmp 0x531f65
mov al, byte [ebx + 0x7da]
test al, al
je 0x532ba5
mov edx, dword [esp + 0xd08]
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0xd04]
push edx
push ebx
push eax
push ebp
call fcn.005319e0
add esp, 0x10
jmp 0x53201d
xor esi, esi
mov eax, dword [esp + 0xd08]
mov ecx, dword [esp + 0x14]
push eax
push ebx
push ecx
push ebp
call fcn.005319e0
add esp, 0x10
test esi, esi
je 0x532e17
push esi
call fcn.0041b9b0
mov ecx, dword [ebx + 0x3f8]
add esp, 4
cmp ecx, eax
jne 0x531f23
mov eax, dword [0x63fdbc]
test eax, eax
jne 0x531f23
mov edx, dword [ebx + 0x3f8]
push edx
call fcn.005358f0
add esp, 4
test eax, eax
je 0x531f23
push edi
call fcn.00535630
add esp, 4
test eax, eax
je 0x531f23
jmp 0x531f65