Function at 0x40329d
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x30
and byte [ebp - 3], 0
and byte [ebp - 4], 0
and byte [ebp - 1], 0
push esi
push edi
mov edi, ecx
mov ecx, dword [0x5493d8]
mov al, byte [ecx + 0x2e0]
xor esi, esi
cmp byte [0x549877], 0
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 8], esi
mov byte [ebp - 2], al
je 0x4032da
mov byte [ebp - 1], 4
cmp byte [0x549879], 0
je 0x4032e7
or byte [ebp - 1], 8
cmp byte [0x549874], 0
je 0x4032f4
or byte [ebp - 1], 1
cmp byte [0x54987c], 0
je 0x403301
or byte [ebp - 1], 2
cmp byte [0x5497f4], 0
je 0x40330e
or byte [ebp - 1], 1
cmp byte [0x5497fc], 0
je 0x40331b
or byte [ebp - 1], 2
cmp byte [0x5497f7], 0
je 0x403328
or byte [ebp - 1], 4
cmp byte [0x5497f9], 0
je 0x403335
or byte [ebp - 1], 8
cmp byte [0x5497f5], 0
je 0x403342
or byte [ebp - 1], 9
cmp byte [0x5497fd], 0
je 0x40334f
or byte [ebp - 1], 0xa
cmp byte [0x5497fb], 0
je 0x40335c
or byte [ebp - 1], 6
cmp byte [0x5497f3], 0
je 0x403369
or byte [ebp - 1], 5
cmp byte [ebp - 1], 0
je 0x403374
call fcn.0043e8d6
movzx eax, byte [ebp - 1]
dec eax
cmp eax, 9
ja case.0x40337e.3
jmp dword [eax*4 + 0x404069]
and byte [ebp - 2], 0
jmp case.0x40337e.3
mov byte [ebp - 2], 1
jmp case.0x40337e.3
mov byte [ebp - 2], 2
jmp case.0x40337e.3
mov byte [ebp - 2], 3
jmp case.0x40337e.3
mov byte [ebp - 2], 4
jmp case.0x40337e.3
mov byte [ebp - 2], 5
jmp case.0x40337e.3
mov byte [ebp - 2], 6
jmp case.0x40337e.3
mov byte [ebp - 2], 7
cmp dword [edi + 0x1554c], esi
push ebx
mov bl, byte [edi + 0x15580]
je 0x4034b2
mov al, byte [edi + 0x1556a]
test al, al
jne 0x4033d4
push 0xa
jmp 0x4033da
cmp al, 1
jne 0x4033e1
push 0xb
mov ecx, edi
call fcn.00428590
cmp byte [edi + 0xab4], 0
je 0x40348a
mov al, byte [edi + 0xad5]
cmp al, 1
jbe 0x40342f
movzx eax, al
mov ecx, dword [eax*4 + 0x548fd8]
xor eax, eax
mov al, bl
push eax
call fcn.0043c8d3
test eax, eax
je 0x40345d
movzx eax, byte [edi + 0x1556a]
push dword [edi + 0x1554c]
push eax
movzx eax, byte [edi + 0xad5]
push eax
mov ecx, edi
call fcn.00404d43
jmp 0x40345d
cmp byte [0x5497bb], 0
je 0x403449
push dword [edi + 0x1554c]
movzx eax, byte [edi + 0x1556a]
push eax
push esi
jmp 0x403426
push 0x4647ac
call fcn.00401ab9
pop ecx
push eax
push edi
call fcn.004256ca
pop ecx
pop ecx
and byte [edi + 0xab4], 0
and byte [edi + 0xab5], 0
and byte [ebp - 1], 0
mov dword [edi + 0x1554c], esi
and byte [0x54a450], 0
and byte [0x54a451], 0
and byte [0x54a452], 0
cmp byte [edi + 0xab5], 0
je 0x4034b2
and byte [ebp - 1], 0
mov dword [edi + 0x1554c], esi
and byte [0x54a450], 0
and byte [0x54a451], 0
and byte [0x54a452], 0
cmp byte [edi + 0xab4], 0
je 0x4034f8
mov al, byte [edi + 0xad5]
test al, al
je 0x4034ef
movzx eax, al
mov ecx, dword [eax*4 + 0x548fd8]
call fcn.0043c896
test eax, eax
je 0x4034ef
cmp byte [0x46ce2c], 0
jne 0x4034ef
mov byte [0x46ce2c], 1
and byte [edi + 0xab2], 0
cmp byte [edi + 0xab4], 0
jne 0x403505
cmp byte [edi + 0xab5], 0
je 0x40359b
cmp byte [edi + 0xad4], 0
je 0x40359b
mov ecx, dword [0x5493d8]
mov eax, dword [ecx + 0x29c]
mov dword [ebp - 0x18], eax
mov ecx, dword [ecx + 0x2a0]
push ecx
mov dword [ebp - 0x14], ecx
push eax
mov ecx, edi
call fcn.00423cfa
test eax, eax
je 0x403544
and byte [edi + 0xab2], 0
mov byte [ebp - 4], 2
jmp 0x40359b
mov eax, dword [0x5493d8]
mov ecx, dword [eax + 0x29c]
mov dword [ebp - 0x18], ecx
mov eax, dword [eax + 0x2a0]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x18]
push eax
movzx eax, byte [ebp - 2]
push eax
push dword [0x527bb8]
call fcn.0042de5d
add esp, 0x10
test eax, eax
je 0x40359b
push dword [ebp - 0x14]
mov ecx, edi
push dword [ebp - 0x18]
call fcn.00423cfa
movzx ecx, byte [edi + 0xad4]
cmp eax, dword [edi + ecx*4 + 0xb0c]
jne 0x40359b
mov byte [ebp - 4], 1
cmp byte [edi + 0xab2], 0
je 0x403674
mov eax, dword [0x5493d8]
mov ecx, dword [eax + 0x29c]
mov dword [ebp - 0x18], ecx
mov eax, dword [eax + 0x2a0]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x18]
push eax
movzx eax, byte [ebp - 2]
push eax
push dword [0x527bb8]
call fcn.0042de5d
add esp, 0x10
test eax, eax
je 0x4035f3
push dword [ebp - 0x14]
mov ecx, dword [0x527bb8]
push dword [ebp - 0x18]
call fcn.00438530
test eax, eax
jne 0x403657
cmp byte [edi + 0xad5], 0
je 0x40365b
xor ebx, ebx
mov eax, dword [0x5493d8]
mov ecx, dword [eax + 0x29c]
mov dword [ebp - 0x18], ecx
mov eax, dword [eax + 0x2a0]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x18]
push eax
push ebx
push dword [0x527bb8]
call fcn.0042de5d
add esp, 0x10
test eax, eax
je 0x40364c
push dword [ebp - 0x14]
mov ecx, dword [0x527bb8]
push dword [ebp - 0x18]
call fcn.00438530
movzx ecx, byte [edi + 0xad5]
cmp eax, ecx
je 0x403654
inc ebx
cmp ebx, 8
jl 0x4035fe
jmp 0x40365b
mov byte [ebp - 2], bl
mov byte [ebp - 3], 1
cmp byte [0x5497c9], 0
jne 0x40366d
cmp byte [0x549849], 0
je 0x403674
mov byte [0x5497e5], 1
mov ecx, 0x46e4b8
call fcn.0043fae1
test al, al
jne 0x40368e
cmp byte [0x5497e5], al
je 0x40368e
mov byte [ebp - 3], 1
cmp byte [edi + 0xab3], 0
je 0x4036d0
cmp byte [0x5497c9], 0
jne 0x4036a9
cmp byte [0x549849], 0
je 0x4036d0
mov eax, dword [edi + 0x1f0c]
cmp eax, esi
je 0x4036d0
push esi
push eax
mov ecx, edi
call fcn.00422d75
test eax, eax
je 0x4036d0
xor bl, bl
and byte [ebp - 3], bl
and byte [0x46ce2c], bl
and byte [ebp - 4], bl
jmp 0x4036d3
mov bl, byte [ebp - 1]
cmp byte [edi + 0xac7], 0
je 0x403761
cmp byte [edi + 0xab4], 0
je 0x40372c
push esi
push dword [edi + 0x1f14]
mov ecx, edi
call fcn.00422d75
test eax, eax
je 0x403709
xor bl, bl
and byte [ebp - 3], bl
and byte [0x46ce2c], bl
and byte [ebp - 4], bl
and byte [edi + 0xac7], 0
mov ecx, edi
call fcn.00422d60
and byte [0x54a450], 0
and byte [0x54a451], 0
and byte [0x54a452], 0
cmp byte [edi + 0xab5], 0
jne 0x40373e
cmp byte [0x5497ad], 0
je 0x403761
and byte [edi + 0xac7], 0
mov ecx, edi
call fcn.00422d60
and byte [0x54a450], 0
and byte [0x54a451], 0
and byte [0x54a452], 0
mov ecx, edi
call fcn.0040323f
test eax, eax
jne 0x40377a
xor bl, bl
and byte [ebp - 3], bl
and byte [0x46ce2c], bl
and byte [ebp - 4], bl
mov eax, dword [0x5493d8]
add eax, 0x2e2
cmp byte [eax], 0
je 0x403792
cmp byte [ebp - 3], 0
je 0x403792
and byte [eax], 0
cmp byte [ebp - 4], 0
je 0x4037b0
cmp byte [ebp - 4], 2
jne 0x4037a2
push 9
jmp 0x4037a7
movzx eax, byte [ebp - 2]
push eax
mov ecx, edi
call fcn.00404e34
jmp 0x4037e1
cmp byte [0x46ce2c], 0
je 0x4037fb
movzx eax, byte [edi + 0xad5]
mov eax, dword [eax*4 + 0x548fd8]
push dword [eax + 0x2a0]
mov ecx, edi
push dword [eax + 0x29c]
call fcn.00405f76
and byte [0x46ce2c], 0
and byte [0x54a450], 0
and byte [0x54a451], 0
and byte [0x54a452], 0
jmp case.0x403c3d.3
cmp byte [ebp - 3], 0
je 0x403c2f
cmp byte [edi + 0xac3], 0
mov ecx, dword [0x5493d8]
mov eax, dword [ecx + 0x29c]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ecx + 0x2a0]
push 1
mov dword [ebp - 0x30], ecx
pop edx
je 0x40382b
xor edx, edx
mov ebx, dword [0x527bb8]
mov esi, dword [ebx]
mov ecx, dword [esi + ecx*4]
lea eax, [eax + eax*2]
test byte [ecx + eax*4 + 9], 0x10
je 0x403842
xor edx, edx
test edx, edx
je 0x403bce
mov eax, dword [0x5493d8]
mov eax, dword [eax + 0x10]
test eax, eax
mov dword [ebp - 8], 3
je 0x403b0a
movzx ecx, byte [eax + 3]
movzx eax, byte [eax + 2]
push 2
pop esi
sub eax, esi
mov dword [ebp - 8], ecx
je 0x4039ee
sub eax, esi
je 0x4039b4
dec eax
je 0x403901
dec eax
je 0x4038c7
sub eax, esi
jne 0x403b02
and dword [ebp - 8], 0
call fcn.004428b4
push 0x64
cdq
pop ecx
idiv ecx
dec edx
je 0x4038bd
dec edx
je 0x4038b3
dec edx
jne 0x403bc0
push 0x46478c
jmp 0x403b95
push 0x464768
jmp 0x403b95
push 0x46474c
jmp 0x403b95
and dword [ebp - 8], 0
call fcn.004428b4
push 0x64
cdq
pop ecx
idiv ecx
dec edx
je 0x4038f7
dec edx
je 0x4038ed
dec edx
jne 0x403bc0
push 0x464734
jmp 0x403b95
push 0x46471c
jmp 0x403b95
push 0x46470c
jmp 0x403b95
mov ecx, dword [edi + 0x15b08]
test ecx, ecx
mov dword [ebp - 0x24], 1
je 0x40397a
call fcn.0042dfd0
test eax, eax
jle 0x40397a
mov dword [ebp - 0x28], 4
mov ecx, dword [0x5493dc]
test ecx, ecx
je 0x403bbc
movzx eax, byte [edi + 0xabb]
push eax
call fcn.0043c8b0
test eax, eax
je 0x403bbc
mov ecx, dword [0x5493d8]
cmp byte [ecx + 0x2df], 0
jne 0x403bbc
push dword [ebp - 8]
push 0
call fcn.0043c49b
test eax, eax
mov ecx, dword [0x5493d8]
jne 0x403a46
mov eax, 0x3e8
jmp 0x403a83
and dword [ebp - 8], 0
call fcn.004428b4
push 0x64
cdq
pop ecx
idiv ecx
dec edx
je 0x4039aa
dec edx
je 0x4039a0
dec edx
jne 0x403bc0
push 0x464700
jmp 0x403b95
push 0x4646e8
jmp 0x403b95
push 0x4646d0
jmp 0x403b95
and dword [ebp - 8], 0
call fcn.004428b4
push 0x64
cdq
pop ecx
idiv ecx
dec edx
je 0x4039e4
dec edx
je 0x4039da
dec edx
jne 0x403bc0
push 0x4646b8
jmp 0x403b95
push 0x4646a0
jmp 0x403b95
push 0x464680
jmp 0x403b95
mov ecx, dword [edi + 0x15b0c]
test ecx, ecx
mov dword [ebp - 0x24], esi
je 0x403a0c
call fcn.0042dfd0
test eax, eax
je 0x403a0c
mov dword [ebp - 0x28], esi
jmp 0x403922
and dword [ebp - 8], 0
call fcn.004428b4
push 0x64
cdq
pop ecx
idiv ecx
dec edx
je 0x403a3c
dec edx
je 0x403a32
dec edx
jne 0x403bc0
push 0x464664
jmp 0x403b95
push 0x46464c
jmp 0x403b95
push 0x464634
jmp 0x403b95
movsx edx, word [eax + 6]
cmp edx, dword [ebp - 0x24]
mov ebx, dword [eax + 0x2c]
jle 0x403a6c
mov esi, edx
sub esi, dword [ebp - 0x24]
cmp esi, edx
jge 0x403a6c
mov eax, dword [eax + 0x30]
lea eax, [eax + esi*8 + 4]
sub edx, esi
sub ebx, dword [eax]
add eax, 8
dec edx
jne 0x403a64
mov esi, dword [ecx + 0x244]
mov eax, ebx
imul eax, eax, 0x3e8
xor esi, 0x29
cdq
push 2
idiv esi
pop esi
push eax
mov eax, dword [0x5493dc]
push dword [eax + 0x2a0]
push dword [eax + 0x29c]
movzx eax, byte [eax + 0x2dd]
push dword [ebp - 0x28]
push esi
push eax
push dword [ecx + 0x2a0]
movzx eax, byte [ecx + 0x2e0]
push dword [ecx + 0x29c]
push eax
push dword [ebp - 8]
call fcn.0043b271
mov dword [0x491678], eax
mov eax, dword [0x5493dc]
push dword [eax + 0x2a0]
movzx ecx, byte [eax + 0x2de]
push dword [eax + 0x29c]
movzx eax, byte [eax + 0x2dd]
push ecx
push eax
mov eax, dword [0x5493d8]
movzx eax, byte [eax + 0x2e0]
push 1
push eax
push dword [ebp - 0x28]
mov ecx, edi
push esi
call fcn.00404c6e
jmp 0x403bbc
test ecx, ecx
je 0x403bc0
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x2c]
push eax
movzx eax, byte [ebp - 2]
push eax
push ebx
call fcn.0042de5d
add esp, 0x10
test eax, eax
je 0x403bbc
mov ecx, dword [0x527bb8]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x30]
mov edx, dword [edx + esi*4]
lea ebx, [eax + eax*2]
mov edx, dword [edx + ebx*4 + 8]
test dl, 0x80
je 0x403b4d
test edx, 0x10000000
je 0x403bbc
push esi
push eax
call fcn.00438530
test eax, eax
je 0x403bc0
mov ebx, dword [eax*4 + 0x548fd8]
mov ecx, ebx
call fcn.0043c896
test eax, eax
je 0x403ba9
and dword [ebp - 8], 0
call fcn.004428b4
push 0x64
cdq
pop ecx
idiv ecx
dec edx
je 0x403b90
dec edx
je 0x403b89
dec edx
jne 0x403bc0
push 0x464618
jmp 0x403b95
push 0x464608
jmp 0x403b95
push 0x4645f8
call fcn.00401ab9
pop ecx
mov ecx, dword [0x5493d8]
push eax
call fcn.0043c501
jmp 0x403bc0
movzx eax, byte [edi + 0xabb]
push eax
mov ecx, ebx
call fcn.0043c8b0
test eax, eax
jne 0x403bc0
and dword [ebp - 8], 0
push 9
mov ecx, edi
call fcn.00428590
jmp 0x403d2f
call fcn.004428b4
push 0x64
cdq
pop ecx
idiv ecx
dec edx
je 0x403c13
dec edx
je 0x403bf7
dec edx
je 0x403bf0
dec edx
jne case.0x403c3d.3
push 0x4645dc
jmp 0x403bfc
push 0x4645d0
jmp 0x403bfc
push 0x4645bc
call fcn.00401ab9
pop ecx
mov ecx, dword [0x5493d8]
push eax
call fcn.0043c501
jmp case.0x403c3d.3
push 0x4645a8
call fcn.00401ab9
pop ecx
mov ecx, dword [0x5493d8]
push eax
call fcn.0043c501
jmp 0x403d2f
xor eax, eax
mov al, bl
dec eax
cmp eax, 9
ja case.0x403c3d.3
jmp dword [eax*4 + 0x404091]
push 0
mov ecx, edi
call fcn.00428590
and dword [ebp - 0xc], 0
mov dword [ebp - 8], 1
mov dword [ebp - 0x10], 0xffffffe2
jmp 0x403d35
push 1
pop esi
push esi
mov ecx, edi
call fcn.00428590
mov dword [ebp - 8], esi
mov dword [ebp - 0xc], 0x1a
mov dword [ebp - 0x10], 0xfffffff1
jmp 0x403d35
push 2
mov ecx, edi
call fcn.00428590
mov dword [ebp - 8], 1
mov dword [ebp - 0xc], 0x34
jmp 0x403d0b
push 3
mov ecx, edi
call fcn.00428590
mov dword [ebp - 8], 1
mov dword [ebp - 0xc], 0x1a
jmp 0x403ceb
push 4
mov ecx, edi
call fcn.00428590
and dword [ebp - 0xc], 0
mov dword [ebp - 8], 1
mov dword [ebp - 0x10], 0x1e
jmp 0x403d35
push 5
mov ecx, edi
call fcn.00428590
mov dword [ebp - 8], 1
mov dword [ebp - 0xc], 0xffffffe6
mov dword [ebp - 0x10], 0xf
jmp 0x403d35
push 6
mov ecx, edi
call fcn.00428590
mov dword [ebp - 8], 1
mov dword [ebp - 0xc], 0xffffffcc
and dword [ebp - 0x10], 0
jmp 0x403d35
push 7
mov ecx, edi
call fcn.00428590
mov dword [ebp - 8], 1
mov dword [ebp - 0xc], 0xffffffe6
mov dword [ebp - 0x10], 0xfffffff1
cmp dword [ebp - 8], 1
jne case.0x403c3d.3
cmp byte [0x5497c9], 0
jne 0x403d47
cmp byte [0x549849], 0
je case.0x403c3d.3
cmp byte [edi + 0xab3], 0
jne 0x403d69
mov eax, dword [0x5493d8]
mov al, byte [eax + 0x2e0]
cmp al, byte [ebp - 2]
je 0x403d69
mov dword [ebp - 8], 8
jmp case.0x403c3d.3
and dword [ebp - 8], 0
mov eax, dword [0x5493d8]
mov ecx, dword [eax + 0x29c]
mov dword [ebp - 0x20], ecx
mov eax, dword [eax + 0x2a0]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0042de3c
mov eax, dword [0x5493d8]
mov edx, dword [eax + 0x29c]
sub edx, dword [eax + 0x28c]
pop ecx
pop ecx
mov ecx, dword [eax + 0x2a0]
sub ecx, dword [eax + 0x290]
mov esi, edx
imul ecx, ecx
imul esi, edx
add ecx, esi
cmp ecx, 0x40
jl 0x403dcb
mov dword [0x46ce30], 1
jmp 0x403dfd
cmp ecx, 0x10
jl 0x403dd5
push 1
pop ecx
jmp 0x403ddd
xor ecx, ecx
mov dword [0x46ce30], ecx
cmp dword [0x46ce30], 0
je 0x403dfd
test ecx, ecx
je 0x403dfd
and byte [0x5497d6], 0
and byte [edi + 0xab6], 0
mov eax, dword [0x5493d8]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x403e1f
push 1
push 2
mov ecx, eax
call fcn.0043d62b
test eax, eax
jne 0x403e1f
and byte [0x5497d6], al
and byte [edi + 0xab6], al
cmp dword [ebp - 8], 1
jne 0x403faa
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0xc]
add eax, esi
push eax
mov eax, dword [ebp - 0x20]
add eax, ebx
push eax
mov ecx, edi
call fcn.004040b9
sub eax, 0
je 0x403f53
dec eax
je 0x403f4d
dec eax
jne 0x403faa
add dword [ebp - 0x20], ebx
add dword [ebp - 0x1c], esi
cmp byte [0x5497d6], 0
jne 0x403e75
cmp byte [edi + 0xab6], 0
je 0x403faa
mov eax, dword [ebp - 0x1c]
add eax, esi
push eax
mov eax, dword [ebp - 0x20]
add eax, ebx
push eax
mov ecx, edi
call fcn.004040b9
cmp eax, 2
jne 0x403faa
call fcn.004428b4
cdq
push 0x32
pop ecx
idiv ecx
mov ecx, dword [0x5493d8]
mov eax, dword [ecx + 0x240]
xor eax, 0x72
push 0xa
pop ebx
push 0x14
mov esi, edx
cdq
idiv ebx
pop ebx
add esi, 0x19
sub eax, 0x64
cdq
idiv ebx
cmp eax, 1
jl 0x403f0a
dec eax
je 0x403efc
dec eax
je 0x403ef4
dec eax
je 0x403eef
dec eax
je 0x403eea
dec eax
je 0x403ee2
dec eax
je 0x403edd
imul esi, esi, 0x78
mov eax, esi
jmp 0x403f02
imul esi, esi, 0x64
jmp 0x403ed9
lea eax, [esi + esi*4]
shl eax, 4
jmp 0x403f02
imul esi, esi, 0x46
jmp 0x403ed9
imul esi, esi, 0x3c
jmp 0x403ed9
lea eax, [esi + esi*4]
shl eax, 3
jmp 0x403f02
lea eax, [esi + esi*4]
shl eax, 2
push 0xa
cdq
pop esi
idiv esi
mov esi, eax
lea eax, [esi + esi*4]
shl eax, 1
cdq
idiv dword [edi + 0x15540]
push eax
call fcn.0043a3dc
mov ecx, dword [0x5493d8]
call fcn.0043a419
mov ecx, dword [0x5493d8]
mov esi, eax
call fcn.0043a408
cmp eax, esi
jl 0x403faa
mov eax, dword [ebp - 0xc]
add dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
add dword [ebp - 0x1c], eax
mov dword [ebp - 8], 2
jmp 0x403faa
and dword [ebp - 8], 0
jmp 0x403faa
and dword [ebp - 8], 0
cmp byte [0x54a450], 1
jne 0x403faa
cmp byte [edi + 0xad5], 0
jne 0x403faa
mov eax, dword [0x492080]
mov ecx, dword [0x54a454]
add ecx, eax
mov eax, dword [0x492084]
mov dword [0x46ce24], ecx
mov ecx, dword [0x54a458]
add ecx, eax
push 0x46ce28
push 0x46ce24
mov dword [0x46ce20], 1
mov dword [0x46ce28], ecx
call fcn.0042ddd0
pop ecx
pop ecx
and byte [edi + 0xab6], 0
cmp dword [0x545bd4], 5
pop ebx
jl 0x403fd4
push 0x464570
call fcn.00401ab9
pop ecx
push eax
push edi
call fcn.004256ca
pop ecx
pop ecx
jmp 0x404062
xor esi, esi
cmp dword [0x46ce20], esi
je 0x404001
push dword [0x527bb8]
mov ecx, dword [0x5493d8]
push dword [0x46ce28]
push dword [0x46ce24]
call fcn.0043e811
mov dword [0x46ce20], esi
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0042ddd0
pop ecx
pop ecx
mov ecx, dword [0x5493d8]
cmp byte [ecx + 0x2df], 0xc
jne 0x40402d
cmp dword [ebp - 8], esi
jne 0x40402d
mov al, byte [ecx + 0x2e0]
mov byte [ebp - 2], al
cmp byte [ecx + 0x2e2], 0
je 0x40403e
push esi
push esi
push 0xffffffffffffffff
push 5
jmp 0x40405d
mov ecx, edi
call fcn.0040323f
test eax, eax
je 0x404062
push dword [ebp - 0x1c]
movzx eax, byte [ebp - 2]
push dword [ebp - 0x20]
mov ecx, dword [0x5493d8]
push eax
push dword [ebp - 8]
call fcn.0043b5fa
push 1
pop eax
pop edi
pop esi
leave
ret