Function at 0x10042a07
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8c
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 8], edx
mov esi, eax
xor eax, eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
movsx eax, byte [eax + 0x71]
cmp eax, 0xffffffff
jne 0x10043640
mov eax, dword [ebp - 0xc]
mov edi, edx
mov dword [ebp - 0x70], esi
mov dword [ebp - 4], ecx
test eax, eax
jne 0x100431f8
mov ecx, dword [esi + 0x3c]
cmp ecx, dword [esi + 0x44]
jb 0x1004273d
push esi
call fcn.1001cb04
pop ecx
cmp eax, 0x18
je 0x100426ff
mov ebx, 0xa
jmp 0x10042706
mov ebx, 0xffffffff
xor eax, eax
mov ecx, dword [esi + 0x3c]
movzx edx, byte [esi + 0x128]
mov dword [esi + 0x48], ecx
test dl, 2
jne 0x1004271e
add ecx, 1
mov dword [esi + 0x3c], ecx
add dword [esi + 0x90], 1
adc dword [esi + 0x94], 0
and byte [esi + 0x12e], 0x7f
test eax, eax
jne 0x10042f9e
jmp 0x10042746
movsx ebx, byte [ecx]
add ecx, 1
mov dword [esi + 0x3c], ecx
lea eax, [ebx + 1]
cmp eax, 0x75
ja case.0x10042759.0
mov eax, dword [eax*4 + 0x100bf1e0]
jmp eax
cmp edi, 5
je 0x10043217
cmp edi, 4
je 0x10043217
cmp edi, 1
je 0x10043217
mov eax, dword [ebp - 0x10]
movsx edi, byte [eax + 0x72]
cmp edi, 0x38
je 0x100433ef
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx]
mov byte [eax], bl
add dword [ecx], 1
add dword [ecx + 4], 1
cmp ebx, 0x46
je 0x100427b0
cmp ebx, 0x66
je 0x100427b0
cmp ebx, 0x54
je 0x100427b0
cmp ebx, 0x74
je 0x100427b0
mov eax, ecx
mov byte [eax + 0x70], 8
jmp 0x100427c6
mov eax, ecx
mov byte [eax + 0x70], 0xa
jmp 0x100427c6
mov edi, dword [ebp - 0x10]
mov ecx, dword [edi]
mov byte [ecx], bl
add dword [edi], 1
add dword [edi + 4], 1
mov edi, dword [esi + 0x3c]
cmp edi, dword [esi + 0x44]
jb 0x10042821
push esi
call fcn.1001cb04
pop ecx
mov edx, eax
cmp edx, 0x18
je 0x100427e3
mov ebx, 0xa
jmp 0x100427ea
mov ebx, 0xffffffff
xor edx, edx
mov edi, dword [esi + 0x3c]
movzx ecx, byte [esi + 0x128]
mov dword [esi + 0x48], edi
test cl, 2
jne 0x10042802
add edi, 1
mov dword [esi + 0x3c], edi
add dword [esi + 0x90], 1
adc dword [esi + 0x94], 0
and byte [esi + 0x12e], 0x7f
test edx, edx
jne 0x1004362f
jmp 0x1004282c
movsx ebx, byte [edi]
add edi, 1
mov dword [esi + 0x3c], edi
xor edx, edx
push ebx
mov dword [ebp - 0x74], edx
call fcn.10091871
mov edx, dword [ebp - 0x74]
add esp, 4
test eax, eax
jne 0x100427b8
cmp ebx, 0x5f
je 0x100427b8
mov eax, ebx
mov ebx, edi
mov edi, edx
mov edx, 1
mov ecx, edx
mov edx, edi
mov edi, ecx
cmp eax, 0x21
je 0x100433e2
cmp eax, 0xa
je 0x10042c61
cmp eax, 9
jne 0x1004287c
mov eax, dword [esi + 0x44]
jmp 0x10042c66
cmp eax, 0x20
jne 0x10042889
mov eax, dword [esi + 0x44]
jmp 0x10042c66
mov ecx, edx
mov edx, edi
mov edi, ecx
lea ecx, [eax - 0x22]
cmp ecx, 0x1d
ja case.0x100428a2.35
mov ecx, dword [ecx*4 + 0x100bf3c0]
jmp ecx
mov eax, dword [ebp - 0x10]
movsx eax, byte [eax + 0x70]
cmp eax, 8
je 0x10043570
jmp 0x10042c01
cmp ebx, dword [esi + 0x44]
jb 0x10042910
push esi
call fcn.1001cb04
pop ecx
mov edi, eax
cmp edi, 0x18
je 0x100428d3
mov edx, 0xa
jmp 0x100428da
mov edx, 0xffffffff
xor edi, edi
mov ecx, dword [esi + 0x3c]
movzx eax, byte [esi + 0x128]
mov dword [esi + 0x48], ecx
test al, 2
jne 0x100428f1
add ecx, 1
mov dword [esi + 0x3c], ecx
add dword [esi + 0x90], 1
adc dword [esi + 0x94], 0
and byte [esi + 0x12e], 0x7f
test edi, edi
jne 0x10042c52
jmp 0x1004291b
movsx edx, byte [ebx]
add ebx, 1
mov dword [esi + 0x3c], ebx
xor edi, edi
cmp edx, 0x3f
je 0x100432ed
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 4]
mov byte [ecx + 0x70], 3
mov byte [ecx + 0x71], 4
sub dword [ecx], eax
movzx ebx, byte [esi + 0x128]
test bl, 2
jne 0x10042960
mov ebx, ecx
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x48]
add ecx, 0xffffffff
add eax, 1
cmp ecx, eax
ja 0x10042954
mov ecx, eax
mov dword [esi + 0x3c], ecx
movsx eax, byte [ebx + 0x70]
jmp 0x10042c01
mov ebx, ecx
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x48]
add ecx, 0xffffffff
cmp ecx, eax
ja 0x10042971
mov ecx, eax
mov dword [esi + 0x3c], ecx
movsx eax, byte [ebx + 0x70]
jmp 0x10042c01
movzx eax, byte [esi + 0x128]
test al, 2
je 0x10043570
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x71], 2
movsx eax, byte [eax + 0x70]
jmp 0x10042c01
movzx eax, byte [esi + 0x128]
test al, 2
je 0x10043570
test edx, edx
je 0x10043570
mov ecx, dword [ebp - 0x10]
mov eax, dword [esi + 0x48]
add ebx, 0xffffffff
cmp ebx, eax
ja 0x100429c2
mov ebx, eax
mov dword [esi + 0x3c], ebx
movsx eax, byte [ecx + 0x70]
jmp 0x10042c01
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x71], 0xe
movsx eax, byte [eax + 0x70]
jmp 0x10042c01
movzx eax, byte [esi + 0x128]
test al, 2
jne 0x100429b3
mov ecx, dword [ebp - 0x10]
mov eax, dword [esi + 0x48]
add ebx, 0xffffffff
add eax, 1
cmp ebx, eax
ja 0x100429fb
mov ebx, eax
mov dword [esi + 0x3c], ebx
movsx eax, byte [ecx + 0x70]
jmp 0x10042c01
mov ecx, dword [ebp - 8]
cmp ecx, 0xc
je 0x10042b6a
test edx, edx
je 0x10042b79
mov dword [ebp - 0x74], esi
xor edx, edx
mov ecx, 1
mov dword [ebp - 8], ecx
mov ecx, dword [esi + 0x44]
mov dword [ebp - 4], ecx
mov ecx, dword [ebp - 8]
mov esi, edx
mov edx, dword [ebp - 4]
cmp ebx, edx
jae 0x100433cf
add esi, 1
je 0x100433bc
mov edx, dword [ebp - 0x74]
mov dword [ebp - 8], ecx
movsx eax, byte [ebx]
add ebx, 1
mov dword [edx + 0x3c], ebx
lea ecx, [eax - 0x24]
cmp ecx, 0x20
jae 0x10042a8a
mov edi, 1
shl edi, cl
test edi, 0x825
je 0x10042a8a
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x74], edx
xor edi, edi
cmp eax, 0x29
jne 0x10043315
mov edx, dword [ebp - 4]
cmp ebx, edx
jb 0x10042aab
jmp 0x100432fd
mov ecx, dword [ebp - 4]
cmp ebx, ecx
jae 0x100433a1
add esi, 1
jne 0x10042a4d
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x74], edx
xor edi, edi
cmp eax, 0x29
jne 0x10043315
add esi, 1
je 0x100432fd
mov edi, dword [ebp - 4]
mov edx, dword [ebp - 0x74]
movsx eax, byte [ebx]
add ebx, 1
mov dword [edx + 0x3c], ebx
cmp eax, 0x20
je 0x10042ad1
cmp eax, 9
jne 0x10043394
cmp ebx, edi
jae 0x10042ada
add esi, 1
jne 0x10042aba
mov eax, edx
mov edx, esi
mov esi, eax
xor edi, edi
lea eax, [edx - 1]
mov dword [ebp - 4], eax
test edx, edx
je 0x10042b79
xor edx, edx
movzx ecx, byte [esi + 0x128]
mov eax, dword [esi + 0x48]
test cl, 2
je 0x10042b17
mov ecx, dword [ebp - 4]
add ebx, 0xffffffff
cmp ebx, eax
ja 0x10042b0d
mov ebx, eax
add ecx, 0xffffffff
cmp ecx, 0xffffffff
jne 0x10042b04
jmp 0x10042b34
mov dword [ebp - 0x74], esi
mov esi, dword [ebp - 4]
add ebx, 0xffffffff
lea ecx, [eax + 1]
cmp ebx, ecx
ja 0x10042b29
mov ebx, ecx
add esi, 0xffffffff
cmp esi, 0xffffffff
jne 0x10042b1d
mov esi, dword [ebp - 0x74]
mov dword [esi + 0x3c], ebx
jmp case.0x100428a2.37
movzx eax, byte [esi + 0x128]
test al, 2
jne 0x100429b3
mov ecx, dword [ebp - 0x10]
mov eax, dword [esi + 0x48]
add ebx, 0xffffffff
add eax, 1
cmp ebx, eax
ja 0x10042b5a
mov ebx, eax
mov dword [esi + 0x3c], ebx
movsx eax, byte [ecx + 0x70]
jmp 0x10042c01
test edx, edx
je 0x10042b79
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 4]
mov byte [ecx + 0x70], 3
sub dword [ecx], eax
mov ebx, dword [esi + 0x3c]
movzx eax, byte [esi + 0x128]
test al, 2
jne 0x100429b3
mov ecx, dword [ebp - 0x10]
mov eax, dword [esi + 0x48]
add ebx, 0xffffffff
add eax, 1
cmp ebx, eax
ja 0x10042b9a
mov ebx, eax
mov dword [esi + 0x3c], ebx
movsx eax, byte [ecx + 0x70]
jmp 0x10042c01
movzx eax, byte [esi + 0x128]
test al, 2
je 0x10043570
mov ecx, dword [ebp - 0x10]
mov eax, dword [esi + 0x48]
add ebx, 0xffffffff
cmp ebx, eax
ja 0x10042bc1
mov ebx, eax
mov dword [esi + 0x3c], ebx
movsx eax, byte [ecx + 0x70]
jmp 0x10042c01
push eax
call fcn.10091871
pop ecx
test eax, eax
je 0x10043570
movzx eax, byte [esi + 0x128]
test al, 2
jne 0x100429b3
mov ecx, dword [ebp - 0x10]
mov eax, dword [esi + 0x48]
add ebx, 0xffffffff
add eax, 1
cmp ebx, eax
ja 0x10042bfa
mov ebx, eax
mov dword [esi + 0x3c], ebx
movsx eax, byte [ecx + 0x70]
cmp eax, 0xa
jne 0x10042c1e
mov edx, dword [ebp - 0x10]
lea ebx, [ebp - 0x70]
mov dword [esp + 0xc], ebx
mov eax, esi
mov ecx, 1
call fcn.10043d70
jmp 0x10042c48
cmp eax, 8
jne 0x10042c4a
mov edx, dword [ebp - 0x10]
mov dword [esp + 0xc], 1
mov eax, esi
lea ebx, [ebp - 0x70]
mov dword [esp + 0x10], ebx
lea edi, [ebp - 0xc]
mov ecx, 1
mov dword [esp + 0x14], edi
call fcn.10043654
mov edi, eax
test edi, edi
je 0x100431f8
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov eax, edi
mov edi, dword [ebp - 0x14]
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x44]
xor edi, edi
cmp ebx, eax
jb 0x10042cc0
push esi
call fcn.1001cb04
pop ecx
mov edx, eax
cmp edx, 0x18
je 0x10042c7f
mov eax, 0xa
jmp 0x10042c86
mov eax, 0xffffffff
xor edx, edx
mov ebx, dword [esi + 0x3c]
movzx ecx, byte [esi + 0x128]
mov dword [esi + 0x48], ebx
test cl, 2
jne 0x10042c9e
add ebx, 1
mov dword [esi + 0x3c], ebx
add dword [esi + 0x90], 1
adc dword [esi + 0x94], 0
and byte [esi + 0x12e], 0x7f
test edx, edx
je 0x1004285d
jmp 0x1004362f
movsx eax, byte [ebx]
add ebx, 1
mov dword [esi + 0x3c], ebx
xor edx, edx
jmp 0x1004285d
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x70], 5
jmp 0x100431f8
cmp ecx, dword [esi + 0x44]
jb 0x10042d32
push esi
call fcn.1001cb04
pop ecx
cmp eax, 0x18
je 0x10042cf4
mov edi, 0xa
jmp 0x10042cfb
mov edi, 0xffffffff
xor eax, eax
mov ebx, dword [esi + 0x3c]
movzx ecx, byte [esi + 0x128]
mov dword [esi + 0x48], ebx
test cl, 2
jne 0x10042d13
add ebx, 1
mov dword [esi + 0x3c], ebx
add dword [esi + 0x90], 1
adc dword [esi + 0x94], 0
and byte [esi + 0x12e], 0x7f
test eax, eax
jne 0x10042f9e
jmp 0x10042d3b
movsx edi, byte [ecx]
add ecx, 1
mov dword [esi + 0x3c], ecx
cmp edi, 0x3f
jne 0x1004349f
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x70], 0xf
jmp 0x100431f8
cmp edi, 4
je case.0x10042759.33
cmp edi, 1
jne 0x10042d68
mov eax, dword [esi + 0x44]
mov dword [esi + 0x3c], eax
mov eax, dword [ebp - 0xc]
jmp 0x100426dc
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x70], 2
jmp 0x100431f8
cmp edi, 8
je 0x10042d7e
cmp edi, 6
jne 0x10042dab
mov eax, dword [0x100d8ce8]
test eax, eax
jne 0x10043570
mov eax, dword [ebp - 0x10]
mov dword [0x100d8ce0], 0
mov dword [0x100d8ce4], 1
mov byte [eax + 0x70], 0x10
jmp 0x100431f8
cmp edi, 4
je 0x10042db5
cmp edi, 1
jne 0x10042dc3
mov eax, dword [esi + 0x44]
mov dword [esi + 0x3c], eax
mov eax, dword [ebp - 0xc]
jmp 0x100426dc
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx]
mov byte [eax], bl
add dword [ecx], 1
add dword [ecx + 4], 1
mov eax, dword [esi + 0x3c]
cmp eax, dword [esi + 0x44]
jb 0x10042e2a
push esi
call fcn.1001cb04
pop ecx
cmp eax, 0x18
je 0x10042dec
mov edx, 0xa
jmp 0x10042df3
mov edx, 0xffffffff
xor eax, eax
mov ebx, dword [esi + 0x3c]
movzx ecx, byte [esi + 0x128]
mov dword [esi + 0x48], ebx
test cl, 2
jne 0x10042e0b
add ebx, 1
mov dword [esi + 0x3c], ebx
add dword [esi + 0x90], 1
adc dword [esi + 0x94], 0
and byte [esi + 0x12e], 0x7f
test eax, eax
jne 0x10042f9e
jmp 0x10042e33
movsx edx, byte [eax]
add eax, 1
mov dword [esi + 0x3c], eax
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx]
mov byte [eax], dl
add dword [ecx], 1
add dword [ecx + 4], 1
cmp edx, 0x46
je 0x10042e7b
cmp edx, 0x66
je 0x10042e7b
cmp edx, 0x54
je 0x10042e7b
cmp edx, 0x74
je 0x10042e7b
mov edx, ecx
mov dword [esp + 0xc], 0
mov ecx, 1
lea ebx, [ebp - 0x70]
mov dword [esp + 0x10], ebx
lea eax, [ebp - 0xc]
mov dword [esp + 0x14], eax
mov eax, esi
call fcn.10043654
jmp 0x10042e9b
mov edx, ecx
lea ebx, [ebp - 0x70]
mov dword [esp + 0xc], ebx
mov eax, esi
xor ecx, ecx
call fcn.10043d70
mov ecx, dword [ebp - 0x10]
mov byte [ecx + 0x70], 0xa
mov dword [ebp - 0xc], 1
test eax, eax
jne 0x10042f9e
mov eax, dword [ebp - 0xc]
jmp 0x100426dc
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x70], 0xe
jmp 0x100431f8
cmp edi, 4
je 0x10042ec1
cmp edi, 1
jne 0x10042ecf
mov eax, dword [esi + 0x44]
mov dword [esi + 0x3c], eax
mov eax, dword [ebp - 0xc]
jmp 0x100426dc
movzx eax, byte [esi + 0x128]
mov ebx, dword [esi + 0x48]
add ecx, 0xffffffff
test al, 2
jne 0x10042eeb
add ebx, 1
cmp ecx, ebx
ja 0x10042ef1
mov ecx, ebx
jmp 0x10042ef1
cmp ecx, ebx
ja 0x10042ef1
mov ecx, ebx
mov eax, dword [ebp - 0x10]
mov dword [esi + 0x3c], ecx
movsx ecx, byte [eax + 0x72]
cmp ecx, 0x38
jne 0x10042f26
cmp edi, 0xa
je 0x10042f0a
cmp edi, 9
jne 0x10042f26
mov edx, eax
lea ebx, [ebp - 0xc]
mov dword [esp + 0xc], ebx
mov eax, esi
lea ecx, [ebp - 0x70]
call fcn.10043f48
cmp eax, 1
je 0x100431f8
mov edx, dword [ebp - 0x10]
mov dword [esp + 0xc], 0
mov ecx, 4
lea ebx, [ebp - 0x70]
mov dword [esp + 0x10], ebx
lea eax, [ebp - 0xc]
mov dword [esp + 0x14], eax
mov eax, esi
call fcn.10043654
test eax, eax
jne 0x10042f9e
mov eax, dword [ebp - 0xc]
jmp 0x100426dc
cmp edi, 4
je 0x10042f61
cmp edi, 1
jne 0x10042f6f
mov eax, dword [esi + 0x44]
mov dword [esi + 0x3c], eax
mov eax, dword [ebp - 0xc]
jmp 0x100426dc
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 8]
cmp eax, 6
je 0x10042fb7
cmp eax, 8
je 0x10042fb7
cmp eax, 0xa
je 0x10042f89
cmp eax, 9
jne 0x10042fab
mov ecx, dword [ebp - 0x10]
lea edx, [ebp - 0x70]
mov eax, esi
call fcn.10044158
test eax, eax
je 0x100431f8
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x70], 0
jmp 0x100431f8
mov eax, dword [ebp - 0x10]
mov ebx, dword [eax + 0x74]
test ebx, ebx
jne 0x10042fe8
mov eax, dword [ebp - 8]
cmp eax, 8
je 0x10042fd0
mov eax, dword [ecx + 0x10]
test eax, eax
jne 0x10042fdc
mov edx, dword [ebp - 0x10]
mov eax, esi
call fcn.100445e4
jmp 0x10042ff1
mov edx, dword [ebp - 0x10]
mov eax, esi
call fcn.10044880
jmp 0x10042ff1
mov edx, eax
mov eax, esi
call fcn.10044880
test eax, eax
je 0x100431f8
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov esp, ebp
pop ebp
ret
cmp edi, 4
je 0x10043010
cmp edi, 1
jne 0x1004301e
mov eax, dword [esi + 0x44]
mov dword [esi + 0x3c], eax
mov eax, dword [ebp - 0xc]
jmp 0x100426dc
mov eax, dword [0x100d8ce4]
test eax, eax
jne 0x10043570
mov eax, dword [ebp - 0x10]
mov dword [0x100d8ce0], 0
mov dword [0x100d8ce8], 1
mov byte [eax + 0x70], 0x10
jmp 0x100431f8
sub ecx, dword [esi + 0x48]
cmp edi, 1
je 0x100434e3
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
mov byte [edx + 0x70], 2
mov byte [eax], bl
mov dword [edx + 4], 1
jmp 0x100431f8
cmp edi, 4
je 0x10043078
cmp edi, 1
jne 0x10043086
mov eax, dword [esi + 0x44]
mov dword [esi + 0x3c], eax
mov eax, dword [ebp - 0xc]
jmp 0x100426dc
cmp ecx, dword [esi + 0x44]
jb 0x100430df
push esi
call fcn.1001cb04
pop ecx
cmp eax, 0x18
je 0x1004309e
mov edx, 0xa
jmp 0x100430a5
mov edx, 0xffffffff
xor eax, eax
mov ecx, dword [esi + 0x3c]
movzx edi, byte [esi + 0x128]
mov dword [esi + 0x48], ecx
test edi, 2
jne 0x100430c0
add ecx, 1
mov dword [esi + 0x3c], ecx
add dword [esi + 0x90], 1
adc dword [esi + 0x94], 0
and byte [esi + 0x12e], 0x7f
test eax, eax
jne 0x10042f9e
jmp 0x100430e8
movsx edx, byte [ecx]
add ecx, 1
mov dword [esi + 0x3c], ecx
cmp edx, ebx
jne 0x10043525
mov dword [ebp - 0x74], ebx
xor edi, edi
cmp ecx, dword [esi + 0x44]
jb 0x1004314b
push esi
call fcn.1001cb04
pop ecx
cmp eax, 0x18
je 0x1004310d
mov edx, 0xa
jmp 0x10043114
mov edx, 0xffffffff
xor eax, eax
mov ecx, dword [esi + 0x3c]
movzx ebx, byte [esi + 0x128]
mov dword [esi + 0x48], ecx
test bl, 2
jne 0x1004312c
add ecx, 1
mov dword [esi + 0x3c], ecx
add dword [esi + 0x90], 1
adc dword [esi + 0x94], 0
and byte [esi + 0x12e], 0x7f
test eax, eax
jne 0x10042f9e
jmp 0x10043154
movsx edx, byte [ecx]
add ecx, 1
mov dword [esi + 0x3c], ecx
cmp edx, 0xa
jne 0x1004315e
mov edi, 1
je 0x100430f5
mov ebx, dword [ebp - 0x74]
cmp edx, ebx
jne 0x10043190
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx]
mov byte [eax], dl
add dword [ecx], 1
add dword [ecx + 4], 1
movzx eax, byte [esi + 0x128]
test al, 2
je 0x10043188
test edi, edi
jne 0x10043570
mov ecx, dword [esi + 0x3c]
jmp 0x10043086
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x70], 9
movzx ecx, byte [esi + 0x128]
test cl, 2
jne 0x100431bd
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x48]
add ecx, 0xffffffff
add eax, 1
cmp ecx, eax
ja 0x100431b8
mov ecx, eax
mov dword [esi + 0x3c], ecx
jmp 0x100431cf
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x48]
add ecx, 0xffffffff
cmp ecx, eax
ja 0x100431cc
mov ecx, eax
mov dword [esi + 0x3c], ecx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 4]
mov dword [ebp - 0xc], 1
sub dword [ecx], eax
mov eax, 1
jmp 0x100426dc
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x70], 6
jmp 0x100431f8
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x70], 1
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
xor eax, eax
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x10]
movsx eax, byte [eax + 0x72]
cmp eax, 0x38
je 0x10043582
push ebx
call fcn.10091871
pop ecx
test eax, eax
je 0x10043558
mov edi, dword [ebp - 0x10]
mov eax, dword [edi]
mov byte [eax], bl
add dword [edi], 1
add dword [edi + 4], 1
mov edx, dword [esi + 0x3c]
cmp edx, dword [esi + 0x44]
jb 0x1004328d
push esi
call fcn.1001cb04
pop ecx
cmp eax, 0x18
je 0x1004324f
mov ebx, 0xa
jmp 0x10043256
mov ebx, 0xffffffff
xor eax, eax
mov edx, dword [esi + 0x3c]
movzx ecx, byte [esi + 0x128]
mov dword [esi + 0x48], edx
test cl, 2
jne 0x1004326e
add edx, 1
mov dword [esi + 0x3c], edx
add dword [esi + 0x90], 1
adc dword [esi + 0x94], 0
and byte [esi + 0x12e], 0x7f
test eax, eax
jne 0x10042f9e
jmp 0x10043296
movsx ebx, byte [edx]
add edx, 1
mov dword [esi + 0x3c], edx
cmp ebx, 0x24
je 0x10043229
cmp ebx, 0x5f
je 0x10043229
push ebx
mov dword [ebp - 4], edx
call fcn.10091871
mov edx, dword [ebp - 4]
add esp, 4
test eax, eax
jne 0x10043229
movzx eax, byte [esi + 0x128]
mov ecx, dword [esi + 0x48]
add edx, 0xffffffff
test al, 2
jne 0x100432d3
add ecx, 1
cmp edx, ecx
ja 0x100432d9
mov edx, ecx
jmp 0x100432d9
cmp edx, ecx
ja 0x100432d9
mov edx, ecx
mov dword [esi + 0x3c], edx
mov edx, dword [ebp - 0x10]
mov eax, dword [edx + 4]
mov byte [edx + 0x70], 3
sub dword [edx], eax
jmp 0x100431f8
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x71], 0xf
movsx eax, byte [eax + 0x70]
jmp 0x10042c01
cmp eax, 0x28
jne 0x1004331f
xor edx, edx
cmp ecx, 1
sete dl
add ecx, 1
test edx, edx
jne 0x10042a33
mov edx, esi
mov esi, dword [ebp - 0x74]
jmp 0x10042ae2
mov ecx, dword [ebp - 4]
mov edx, esi
mov esi, dword [ebp - 0x74]
cmp eax, 0x3d
je 0x10043361
cmp eax, 0x25
je 0x10043349
cmp eax, 0x2e
jne 0x10042ae2
movzx eax, byte [esi + 0x128]
test al, 2
je 0x10042ae2
lea eax, [edx - 1]
mov dword [ebp - 4], eax
test edx, edx
je 0x10042b6a
mov edx, 1
jmp 0x10042af2
cmp ebx, ecx
jae 0x1004337c
movsx eax, byte [ebx]
add edx, 1
add ebx, 1
mov dword [esi + 0x3c], ebx
xor edi, edi
cmp eax, 0x3f
je 0x10042ae2
lea eax, [edx - 1]
mov dword [ebp - 4], eax
test edx, edx
je 0x10042b6a
mov edx, 1
jmp 0x10042af2
mov dword [ebp - 4], edi
mov dword [ebp - 0x74], edx
xor edi, edi
jmp 0x100432fd
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x74], edx
xor edi, edi
cmp eax, 0x29
je 0x100432fd
mov edx, esi
mov esi, dword [ebp - 0x74]
jmp 0x10042ae2
cmp eax, 0x29
je 0x10042aab
mov edx, esi
mov esi, dword [ebp - 0x74]
jmp 0x10042ae2
cmp eax, 0x29
je 0x100432fd
mov edx, esi
mov esi, dword [ebp - 0x74]
jmp 0x10042ae2
mov eax, dword [esi + 0x44]
mov ebx, eax
mov dword [esi + 0x3c], eax
jmp 0x10042c64
mov eax, dword [ebp - 8]
cmp eax, 0xa
je 0x10043400
cmp eax, 9
jne 0x10042786
movzx eax, byte [esi + 0x128]
mov ebx, dword [esi + 0x48]
add ecx, 0xffffffff
test al, 2
jne 0x1004341c
add ebx, 1
cmp ecx, ebx
ja 0x10043422
mov ecx, ebx
jmp 0x10043422
cmp ecx, ebx
ja 0x10043422
mov ecx, ebx
mov edx, dword [ebp - 0x10]
lea ebx, [ebp - 0xc]
mov dword [esp + 0xc], ebx
mov dword [esi + 0x3c], ecx
mov eax, esi
lea ecx, [ebp - 0x70]
call fcn.10043f48
cmp eax, 1
je 0x100431f8
mov eax, dword [esi + 0x3c]
cmp eax, dword [esi + 0x44]
jb 0x10043491
push esi
call fcn.1001cb04
pop ecx
mov ecx, dword [esi + 0x3c]
cmp eax, 0x18
movzx eax, byte [esi + 0x128]
mov ebx, 0xffffffff
mov dword [esi + 0x48], ecx
je 0x1004346d
mov ebx, 0xa
test al, 2
jne 0x10043477
add ecx, 1
mov dword [esi + 0x3c], ecx
add dword [esi + 0x90], 1
adc dword [esi + 0x94], 0
and byte [esi + 0x12e], 0x7f
jmp 0x10042786
movsx ebx, byte [eax]
add eax, 1
mov dword [esi + 0x3c], eax
jmp 0x10042786
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x70], 4
movzx ecx, byte [esi + 0x128]
test cl, 2
jne 0x100434cc
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x48]
add ecx, 0xffffffff
add eax, 1
cmp ecx, eax
ja 0x100434c4
mov ecx, eax
mov dword [esi + 0x3c], ecx
jmp 0x100431f8
mov ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0x48]
add ecx, 0xffffffff
cmp ecx, eax
ja 0x100434db
mov ecx, eax
mov dword [esi + 0x3c], ecx
jmp 0x100431f8
cmp ecx, 2
jne 0x100434ff
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
mov byte [edx + 0x70], 2
mov byte [eax], bl
mov dword [edx + 4], 1
jmp 0x100431f8
movzx eax, byte [esi + 0x128]
test al, 2
je case.0x10042759.33
mov edx, dword [ebp - 0x10]
mov eax, dword [edx]
mov byte [edx + 0x70], 2
mov byte [eax], bl
mov dword [edx + 4], 1
jmp 0x100431f8
cmp edx, 0xa
je 0x10043086
cmp edx, 0xffffffff
je 0x10043549
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx]
mov byte [eax], dl
add dword [ecx], 1
add dword [ecx + 4], 1
mov ecx, dword [esi + 0x3c]
jmp 0x10043086
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov byte [eax + 0x70], 1
jmp 0x100431cf
cmp edi, 4
je 0x10043562
cmp edi, 1
jne 0x10043570
mov eax, dword [esi + 0x44]
mov dword [esi + 0x3c], eax
mov eax, dword [ebp - 0xc]
jmp 0x100426dc
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
mov eax, 0x11
mov esp, ebp
pop ebp
ret
cmp edi, 0xa
je 0x10043590
cmp edi, 9
jne 0x10043217
movzx eax, byte [esi + 0x128]
mov ebx, dword [esi + 0x48]
add ecx, 0xffffffff
test al, 2
jne 0x100435ac
add ebx, 1
cmp ecx, ebx
ja 0x100435b2
mov ecx, ebx
jmp 0x100435b2
cmp ecx, ebx
ja 0x100435b2
mov ecx, ebx
mov edx, dword [ebp - 0x10]
lea ebx, [ebp - 0xc]
mov dword [esp + 0xc], ebx
mov dword [esi + 0x3c], ecx
mov eax, esi
lea ecx, [ebp - 0x70]
call fcn.10043f48
cmp eax, 1
je 0x100431f8
mov eax, dword [esi + 0x3c]
cmp eax, dword [esi + 0x44]
jb 0x10043621
push esi
call fcn.1001cb04
pop ecx
mov ecx, dword [esi + 0x3c]
cmp eax, 0x18
movzx eax, byte [esi + 0x128]
mov ebx, 0xffffffff
mov dword [esi + 0x48], ecx
je 0x100435fd
mov ebx, 0xa
test al, 2
jne 0x10043607
add ecx, 1
mov dword [esi + 0x3c], ecx
add dword [esi + 0x90], 1
adc dword [esi + 0x94], 0
and byte [esi + 0x12e], 0x7f
jmp 0x10043217
movsx ebx, byte [eax]
add eax, 1
mov dword [esi + 0x3c], eax
jmp 0x10043217
mov ebx, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov edi, edx
mov eax, edi
mov edi, dword [ebp - 0x14]
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x10]
mov esi, dword [ebp - 0x18]
mov byte [edx + 0x70], al
xor eax, eax
mov byte [edx + 0x71], 0xff
mov esp, ebp
pop ebp
ret