Function at 0x4ba440
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x20
push ebx
push ebp
movsx ebx, word [esp + 0x38]
mov ebp, dword [esp + 0x30]
push esi
push edi
mov edi, dword [esp + 0x3c]
mov esi, ecx
xor eax, eax
push ebx
mov ecx, 0x143b720
mov dword [esp + 0x14], ebp
mov dword [esp + 0x40], edi
mov dword [esp + 0x30], 0xa
mov dword [esi + 0x48fe44], eax
mov dword [esi + 0x48fe4c], eax
mov dword [esi + 0x48fe54], eax
mov dword [esi + 0x48fe50], 0xf
call fcn.00408fc0
push ebx
mov ecx, 0x143b720
mov dword [esi + 0x48fe58], eax
call fcn.00408fe0
push ebx
mov ecx, 0x143b720
mov dword [esi + 0x48fe5c], eax
call fcn.004090a0
push ebx
mov ecx, 0x143b720
mov dword [esi + 0x48fe60], eax
call fcn.004090f0
push ebx
mov ecx, 0x143b720
mov dword [esi + 0x48fe68], eax
call fcn.00409110
push ebx
mov ecx, 0x143b720
mov dword [esi + 0x48fe74], eax
call fcn.00409130
push ebx
mov ecx, 0x143b720
mov dword [esi + 0x48fe78], eax
call fcn.00409150
push ebx
mov ecx, 0x143b720
mov dword [esi + 0x48fe7c], eax
call fcn.00409170
push ebx
mov ecx, 0x143b720
mov dword [esi + 0x48fe80], eax
call fcn.00409190
push ebx
mov ecx, 0x143b720
mov dword [esi + 0x48fe84], eax
call fcn.00409210
cmp word [esp + 0x40], 0x5e
mov dword [esi + 0x48fe88], eax
je 0x4bb5c7
xor eax, eax
mov ecx, esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x44]
push eax
push edi
push ebp
call fcn.004bb6e0
cmp ebx, 0x72
jg 0x4ba585
cmp ebx, 0x6e
jge case.0x4ba59e.140
lea eax, [ebx - 0x39]
cmp eax, 0x32
ja case.0x4ba59e.142
xor ecx, ecx
mov cl, byte [eax + 0x4bb5e4]
jmp dword [ecx*4 + 0x4bb5d4]
mov dword [esp + 0x2c], 0x19
jmp case.0x4ba59e.140
lea eax, [ebx - 0x8c]
cmp eax, 0xac
ja case.0x4ba59e.142
xor edx, edx
mov dl, byte [eax + 0x4bb624]
jmp dword [edx*4 + 0x4bb618]
mov eax, dword [0xb08954]
cmp eax, 1
je 0x4ba768
cmp eax, 6
je 0x4ba9af
mov ecx, dword [0x1215de0]
mov eax, 0x1e
test ecx, ecx
je 0x4ba5dd
mov dword [esp + 0x18], 0xf
mov dword [esp + 0x28], 7
jmp 0x4ba5e5
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x44]
xor eax, eax
push ecx
push eax
mov ecx, esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x40], eax
call fcn.004ba330
mov eax, dword [esi + 0x48fe9c]
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + 0x48fe98]
mov ebx, dword [esp + 0x34]
add eax, edi
push edx
add ecx, ebp
push eax
push ecx
push ebx
mov ecx, 0x152b748
call fcn.004807e0
test eax, eax
jne 0x4ba6fe
cmp dword [0xb08954], 3
jne 0x4ba6aa
mov eax, dword [esi + 0x48fe9c]
mov edx, dword [esp + 0x28]
mov ecx, dword [esi + 0x48fe98]
push 0xffffffffffffffff
push 0xffffffffffffffff
add eax, edi
push edx
add ecx, ebp
push eax
push ecx
push ebx
mov ecx, 0x152b748
call fcn.00480a30
test eax, eax
jne 0x4ba6fe
mov eax, dword [esi + 0x48fe9c]
mov edx, dword [esp + 0x2c]
mov ecx, dword [esi + 0x48fe98]
add eax, edi
push edx
add ecx, ebp
push eax
push ecx
push ebx
mov ecx, 0x152b748
call fcn.00480d50
test eax, eax
je 0x4ba6aa
mov edx, dword [esi + 0x48fe9c]
mov eax, dword [esi + 0x48fe98]
add edx, edi
push 0x1e
add eax, ebp
push edx
push eax
push ebx
mov ecx, 0x152b748
call fcn.00481070
test eax, eax
jne 0x4ba6b2
mov dword [esp + 0x14], 1
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 0x48fe90]
inc eax
cmp eax, ecx
mov dword [esp + 0x38], eax
jge 0x4ba710
mov ecx, dword [esp + 0x44]
mov edx, eax
push ecx
push edx
mov ecx, esi
call fcn.004ba330
mov ecx, dword [esi + 0x48fe9c]
mov eax, dword [esp + 0x18]
mov edx, dword [esi + 0x48fe98]
add ecx, edi
push eax
add edx, ebp
push ecx
push edx
push ebx
mov ecx, 0x152b748
call fcn.004807e0
test eax, eax
je 0x4ba62a
mov dword [esi + 0x48fe48], 0x11
mov dword [esp + 0x14], 0
mov eax, dword [0xb2f940]
mov ecx, 0x152b748
add eax, 5
push eax
push edi
push ebp
call fcn.00481560
test eax, eax
je 0x4ba735
mov dword [esi + 0x48fe48], 0x15
jmp 0x4ba741
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4ba9af
mov eax, dword [esi + 0x48fe48]
mov dword [esi + 0x48fe44], 1
test eax, eax
jne 0x4ba9af
mov dword [esi + 0x48fe48], 0x12
jmp 0x4ba9af
mov ecx, dword [esp + 0x44]
xor ebx, ebx
push ecx
push ebx
mov ecx, esi
call fcn.004ba330
mov edx, dword [esi + 0x48fe9c]
mov eax, dword [esi + 0x48fe98]
mov ecx, dword [esp + 0x34]
push 0xffffffffffffffff
push 0xffffffffffffffff
add edx, edi
push 7
add eax, ebp
push edx
push eax
push ecx
mov ecx, 0x152b748
call fcn.00480a30
test eax, eax
jne 0x4ba7e9
mov eax, dword [esi + 0x48fe90]
inc ebx
cmp ebx, eax
jge 0x4ba9af
mov edx, dword [esp + 0x44]
mov ecx, esi
push edx
push ebx
call fcn.004ba330
mov eax, dword [esi + 0x48fe9c]
mov ecx, dword [esi + 0x48fe98]
mov edx, dword [esp + 0x34]
push 0xffffffffffffffff
push 0xffffffffffffffff
add eax, edi
push 7
add ecx, ebp
push eax
push ecx
push edx
mov ecx, 0x152b748
call fcn.00480a30
test eax, eax
je 0x4ba7a2
mov dword [esi + 0x48fe48], 0x11
jmp 0x4ba9a5
mov eax, dword [0xb08954]
cmp eax, 1
je 0x4ba9af
cmp eax, 6
je 0x4ba9af
mov ebx, dword [0x1215de0]
mov eax, dword [esp + 0x44]
neg ebx
sbb ebx, ebx
push eax
and ebx, 0xfffffff1
push 0
mov ecx, esi
add ebx, 0x1e
mov dword [esp + 0x40], 0
call fcn.004ba330
mov ecx, dword [esi + 0x48fe9c]
mov edx, dword [esi + 0x48fe98]
mov eax, dword [esp + 0x34]
add ecx, edi
push ebx
add edx, ebp
push ecx
push edx
push eax
mov ecx, 0x152b748
call fcn.004807e0
test eax, eax
jne 0x4ba8a5
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 0x48fe90]
inc eax
cmp eax, ecx
mov dword [esp + 0x38], eax
jge 0x4ba9af
mov ecx, dword [esp + 0x44]
push ecx
push eax
mov ecx, esi
call fcn.004ba330
mov edx, dword [esi + 0x48fe9c]
mov eax, dword [esi + 0x48fe98]
mov ecx, dword [esp + 0x34]
add edx, edi
push ebx
add eax, ebp
push edx
push eax
push ecx
mov ecx, 0x152b748
call fcn.004807e0
test eax, eax
je 0x4ba85b
mov dword [esi + 0x48fe48], 0x11
jmp 0x4ba9a5
mov eax, dword [0xb08954]
cmp eax, 1
je 0x4ba9af
cmp eax, 6
je 0x4ba9af
mov ebx, dword [0x1215de0]
mov edx, dword [esp + 0x44]
neg ebx
sbb ebx, ebx
push edx
and ebx, 0xfffffff1
push 0
mov ecx, esi
add ebx, 0x1e
mov dword [esp + 0x34], 1
mov dword [esp + 0x40], 0
call fcn.004ba330
mov eax, dword [esi + 0x48fe9c]
mov ecx, dword [esi + 0x48fe98]
mov edx, dword [esp + 0x34]
add eax, edi
push ebx
add ecx, ebp
push eax
push ecx
push edx
mov ecx, 0x152b748
call fcn.004807e0
test eax, eax
jne 0x4ba969
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 0x48fe90]
inc eax
cmp eax, ecx
mov dword [esp + 0x38], eax
jge 0x4ba977
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
push eax
push ecx
mov ecx, esi
call fcn.004ba330
mov edx, dword [esi + 0x48fe9c]
mov eax, dword [esi + 0x48fe98]
mov ecx, dword [esp + 0x34]
add edx, edi
push ebx
add eax, ebp
push edx
push eax
push ecx
mov ecx, 0x152b748
call fcn.004807e0
test eax, eax
je 0x4ba91f
mov dword [esi + 0x48fe48], 0x11
xor ebx, ebx
jmp 0x4ba97b
mov ebx, dword [esp + 0x2c]
mov edx, dword [0xb2f940]
mov ecx, 0x152b748
add edx, 5
push edx
push edi
push ebp
call fcn.00481560
test eax, eax
je 0x4ba9a1
mov dword [esi + 0x48fe48], 0x15
jmp 0x4ba9a5
test ebx, ebx
jne 0x4ba9af
mov dword [esi + 0x48fe44], 1
mov eax, dword [esi + 0x48fe44]
test eax, eax
jne case.0x4ba574.57
mov eax, dword [esp + 0x44]
xor ebx, ebx
push eax
push ebx
mov ecx, esi
call fcn.004ba330
mov ecx, dword [esi + 0x48fe9c]
mov edx, dword [esi + 0x48fe98]
mov eax, dword [esp + 0x34]
add ecx, edi
push 2
add edx, ebp
push ecx
push edx
push eax
mov ecx, 0x152b748
call fcn.004812d0
test eax, eax
jne 0x4baa32
mov eax, dword [esi + 0x48fe90]
inc ebx
cmp ebx, eax
jge case.0x4ba574.57
mov ecx, dword [esp + 0x44]
push ecx
push ebx
mov ecx, esi
call fcn.004ba330
mov edx, dword [esi + 0x48fe9c]
mov eax, dword [esi + 0x48fe98]
mov ecx, dword [esp + 0x34]
add edx, edi
push 2
add eax, ebp
push edx
push eax
push ecx
mov ecx, 0x152b748
call fcn.004812d0
test eax, eax
je 0x4ba9f3
mov dword [esi + 0x48fe48], 0x11
mov dword [esi + 0x48fe44], 1
cmp word [esp + 0x40], 0x69
jne 0x4baa61
cmp dword [esi + 0x48fe70], 0xc
jle 0x4baa61
mov dword [esi + 0x48fe44], 1
mov edx, dword [esp + 0x44]
mov ecx, esi
push edx
push 0
mov dword [esp + 0x40], 0
call fcn.004ba330
mov eax, dword [esi + 0x48fe9c]
lea eax, [eax + edi + 0x20b43]
lea ecx, [eax + eax*2]
mov eax, dword [ecx*4 + 0x8682d0]
mov ecx, dword [esi + 0x48fe98]
add eax, ecx
add eax, ebp
mov ecx, dword [esi + eax*4 + 0x165160]
test cl, 0x30
jne 0x4bab46
test ecx, 0x20000
je 0x4baab4
inc dword [esp + 0x1c]
test ecx, 0x80000
je 0x4baac0
inc dword [esp + 0x20]
test ecx, 0x80000000
je 0x4baacc
inc dword [esp + 0x24]
movsx ebx, word [esp + 0x40]
mov edx, dword [esp + 0x34]
push ebx
push edx
push eax
mov ecx, esi
mov dword [esp + 0x20], ebx
call fcn.004bb770
test eax, eax
je 0x4baaf1
mov dword [esi + 0x48fe44], 1
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 0x48fe90]
inc eax
cmp eax, ecx
mov dword [esp + 0x38], eax
jge 0x4bab5a
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x38]
push eax
push ecx
mov ecx, esi
call fcn.004ba330
mov edx, dword [esi + 0x48fe9c]
mov ecx, dword [esi + 0x48fe98]
lea eax, [edx + edi + 0x20b43]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x8682d0]
add eax, ecx
add eax, ebp
mov ecx, dword [esi + eax*4 + 0x165160]
test cl, 0x30
je 0x4baaa8
mov dword [esi + 0x48fe44], 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x14
mov ax, word [esp + 0x40]
cmp ax, 0x38
jne 0x4bab84
cmp dword [esp + 0x1c], 0x18
jge 0x4bb5c7
mov dword [esi + 0x48fe44], 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x14
cmp ax, 0x3c
je 0x4baba6
cmp ax, 0x3d
je 0x4baba6
cmp ax, 0x3e
je 0x4baba6
cmp ax, 0x3f
je 0x4baba6
cmp ax, 0x40
jne 0x4badc2
lea ecx, [ebx + ebx*2 - 0xb4]
mov dword [esp + 0x38], 0
lea edx, [ecx*8 + 0x604428]
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 4]
lea eax, [eax + edi + 0x20b43]
lea edx, [eax + eax*2]
mov eax, dword [edx*4 + 0x8682d0]
mov edx, dword [ecx]
add eax, edx
add eax, ebp
test byte [esi + eax*4 + 0x165160], 0x30
jne 0x4bb587
mov ecx, dword [esp + 0x34]
push ebx
push ecx
push eax
mov ecx, esi
call fcn.004bb770
test eax, eax
je 0x4bac08
mov dword [esi + 0x48fe44], 1
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x1c]
inc eax
add edx, 8
cmp eax, 3
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], edx
jl 0x4babc0
mov ecx, dword [ebx*8 + 0x6042c4]
mov edx, dword [ebx*8 + 0x6042c0]
add edi, ecx
push 7
push 0
mov ecx, esi
add ebp, edx
mov dword [esp + 0x40], 0
call fcn.004ba330
mov edx, dword [esi + 0x48fe9c]
mov ecx, dword [esi + 0x48fe98]
lea eax, [edx + edi + 0x20b43]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x8682d0]
add eax, ecx
add eax, ebp
test byte [esi + eax*4 + 0x165160], 0x30
jne 0x4bacd7
mov ecx, dword [esp + 0x34]
push ebx
push ecx
push eax
mov ecx, esi
call fcn.004bb770
test eax, eax
je 0x4bac8d
mov dword [esi + 0x48fe44], 1
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 0x48fe90]
inc eax
cmp eax, ecx
mov dword [esp + 0x38], eax
jge 0x4baceb
mov edx, eax
push 7
push edx
mov ecx, esi
call fcn.004ba330
mov eax, dword [esi + 0x48fe9c]
lea eax, [eax + edi + 0x20b43]
lea ecx, [eax + eax*2]
mov eax, dword [ecx*4 + 0x8682d0]
mov ecx, dword [esi + 0x48fe98]
add eax, ecx
add eax, ebp
test byte [esi + eax*4 + 0x165160], 0x30
je 0x4bac71
mov dword [esi + 0x48fe44], 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x14
mov edi, dword [ebx*8 + 0x6042ec]
mov ecx, dword [esp + 0x3c]
mov ebp, dword [ebx*8 + 0x6042e8]
mov edx, dword [esp + 0x10]
add edi, ecx
push 5
push 0
mov ecx, esi
add ebp, edx
mov dword [esp + 0x40], 0
call fcn.004ba330
mov edx, dword [esi + 0x48fe9c]
mov ecx, dword [esi + 0x48fe98]
lea eax, [edx + edi + 0x20b43]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x8682d0]
add eax, ecx
add eax, ebp
test byte [esi + eax*4 + 0x165160], 0x30
jne 0x4bada9
mov ecx, dword [esp + 0x34]
push ebx
push ecx
push eax
mov ecx, esi
call fcn.004bb770
test eax, eax
je 0x4bad5f
mov dword [esi + 0x48fe44], 1
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 0x48fe90]
inc eax
cmp eax, ecx
mov dword [esp + 0x38], eax
jge 0x4badbd
mov edx, eax
push 5
push edx
mov ecx, esi
call fcn.004ba330
mov eax, dword [esi + 0x48fe9c]
lea eax, [eax + edi + 0x20b43]
lea ecx, [eax + eax*2]
mov eax, dword [ecx*4 + 0x8682d0]
mov ecx, dword [esi + 0x48fe98]
add eax, ecx
add eax, ebp
test byte [esi + eax*4 + 0x165160], 0x30
je 0x4bad43
mov dword [esi + 0x48fe44], 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x14
mov ax, word [esp + 0x40]
cmp ax, 0x8c
je 0x4badde
cmp ax, 0x8d
je 0x4badde
cmp ax, 0x8e
je 0x4badde
cmp ax, 0x8f
jne 0x4bb00d
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
push 3
lea edi, [edi + edi*2 - 0x1a4]
push 0
shl edi, 3
mov dword [esp + 0x40], 0
mov ebx, dword [edi + 0x60461c]
mov ebp, dword [edi + 0x604618]
add ebx, ecx
mov ecx, esi
add ebp, edx
call fcn.004ba330
mov edx, dword [esi + 0x48fe9c]
mov ecx, dword [esi + 0x48fe98]
lea eax, [edx + ebx + 0x20b43]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x8682d0]
add eax, ecx
add eax, ebp
test byte [esi + eax*4 + 0x165160], 0x30
jne 0x4baeaa
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
push ecx
push edx
push eax
mov ecx, esi
call fcn.004bb770
test eax, eax
je 0x4bae62
mov dword [esi + 0x48fe44], 1
mov eax, dword [esp + 0x38]
mov ecx, dword [esi + 0x48fe90]
inc eax
cmp eax, ecx
mov dword [esp + 0x38], eax
jge 0x4baebe
push 3
push eax
mov ecx, esi
call fcn.004ba330
mov ecx, dword [esi + 0x48fe9c]
lea eax, [ecx + ebx + 0x20b43]
mov ecx, dword [esi + 0x48fe98]
lea edx, [eax + eax*2]
mov eax, dword [edx*4 + 0x8682d0]
add eax, ecx
add eax, ebp
test byte [esi + eax*4 + 0x165160], 0x30
je 0x4bae42
mov dword [esi + 0x48fe44], 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x14
mov ebx, dword [edi + 0x604624]
mov edi, dword [edi + 0x604628]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
xor ebp, ebp
add edi, ecx
push 3
push ebp
mov ecx, esi
add ebx, edx
call fcn.004ba330
mov eax, dword [esi + 0x48fe9c]
lea eax, [eax + edi + 0x20b43]
lea ecx, [eax + eax*2]
mov eax, dword [ecx*4 + 0x8682d0]
mov ecx, dword [esi + 0x48fe98]
add eax, ecx
add eax, ebx
test byte [esi + eax*4 + 0x165160], 0x30
jne 0x4baf6d
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
push edx
push ecx
push eax
mov ecx, esi
call fcn.004bb770
test eax, eax
je 0x4baf2d
mov dword [esi + 0x48fe44], 1
mov eax, dword [esi + 0x48fe90]
inc ebp
cmp ebp, eax
jge 0x4baf81
push 3
push ebp
mov ecx, esi
call fcn.004ba330
mov edx, dword [esi + 0x48fe9c]
mov ecx, dword [esi + 0x48fe98]
lea eax, [edx + edi + 0x20b43]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x8682d0]
add eax, ecx
add eax, ebx
test byte [esi + eax*4 + 0x165160], 0x30
je 0x4baf0d
mov dword [esi + 0x48fe44], 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x14
movsx ebx, word [esp + 0x40]
mov ebp, dword [esp + 0x10]
mov edi, dword [esp + 0x3c]
lea ebx, [ebx + ebx*2 - 0x1a4]
mov dword [esp + 0x38], 0
shl ebx, 4
add ebx, 0x604678
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x3c]
lea eax, [ecx + edx + 0x20b43]
mov ecx, dword [ebx]
mov edx, dword [esp + 0x10]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x8682d0]
add eax, ecx
add eax, edx
test byte [esi + eax*4 + 0x165160], 0x30
jne 0x4bb587
movsx ecx, word [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x38]
push ecx
push eax
mov ecx, esi
call fcn.004bb770
test eax, eax
je 0x4baff7
mov dword [esi + 0x48fe44], 1
mov eax, dword [esp + 0x38]
add ebx, 8
inc eax
cmp eax, 6
mov dword [esp + 0x38], eax
jl 0x4bafa6
mov ax, word [esp + 0x40]
cmp ax, 0x5a
jne 0x4bb03c
cmp dword [esp + 0x20], 0xc
jge 0x4bb5c7
mov dword [esi + 0x48fe44], 1
mov dword [esi + 0x48fe48], 5
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x14
cmp ax, 0x5b
jne 0x4bb06d
mov ecx, dword [esp + 0x24]
mov eax, 1
cmp ecx, eax
jge 0x4bb5c7
mov dword [esi + 0x48fe44], eax
mov dword [esi + 0x48fe48], 6
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x14
cmp ax, 0x34
jne 0x4bb0e7
mov eax, dword [esp + 0x34]
mov edx, eax
shl edx, 5
sub edx, eax
lea eax, [eax + edx*8]
lea eax, [eax + eax*2]
mov ecx, dword [eax*8 + 0xb20094]
test ecx, ecx
je 0x4bb5c7
mov ebx, dword [esp + 0x34]
push 0xa
push ebx
mov ecx, 0x143b720
call fcn.0040a3d0
cmp eax, 0x20
jge 0x4bb5bd
mov ecx, dword [esp + 0x44]
push 0xa
push ecx
push edi
push ebp
push ebx
mov ecx, 0x143b720
call fcn.0040b850
test eax, eax
jne 0x4bb5c7
mov dword [esi + 0x48fe44], 1
mov dword [esi + 0x48fe48], 3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x14
cmp ax, 0x50
jne 0x4bb161
mov eax, dword [esp + 0x34]
mov edx, eax
shl edx, 5
sub edx, eax
lea eax, [eax + edx*8]
lea eax, [eax + eax*2]
mov ecx, dword [eax*8 + 0xb200bc]
test ecx, ecx
je 0x4bb5c7
mov ebx, dword [esp + 0x34]
push 0x13
push ebx
mov ecx, 0x143b720
call fcn.0040a3d0
cmp eax, 8
jge 0x4bb5bd
mov ecx, dword [esp + 0x44]
push 0x13
push ecx
push edi
push ebp
push ebx
mov ecx, 0x143b720
call fcn.0040b850
test eax, eax
jne 0x4bb5c7
mov dword [esi + 0x48fe44], 1
mov dword [esi + 0x48fe48], 7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x14
cmp ax, 0x51
jne 0x4bb1db
mov eax, dword [esp + 0x34]
mov edx, eax
shl edx, 5
sub edx, eax
lea eax, [eax + edx*8]
lea eax, [eax + eax*2]
mov ecx, dword [eax*8 + 0xb200e4]
test ecx, ecx
je 0x4bb5c7
mov ebx, dword [esp + 0x34]
push 0xb
push ebx
mov ecx, 0x143b720
call fcn.0040a3d0
cmp eax, 8
jge 0x4bb5bd
mov ecx, dword [esp + 0x44]
push 0xb
push ecx
push edi
push ebp
push ebx
mov ecx, 0x143b720
call fcn.0040b850
test eax, eax
jne 0x4bb5c7
mov dword [esi + 0x48fe44], 1
mov dword [esi + 0x48fe48], 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x14
cmp ax, 0x56
je 0x4bb1eb
cmp ax, 0x57
jne 0x4bb407
mov edx, dword [esp + 0x10]
xor ebx, ebx
push 5
push ebx
mov ecx, esi
lea ebp, [edx + 5]
call fcn.004ba330
mov eax, dword [esi + 0x48fe9c]
mov edi, dword [esp + 0x3c]
lea eax, [eax + edi + 0x20b43]
lea ecx, [eax + eax*2]
mov eax, dword [ecx*4 + 0x8682d0]
mov ecx, dword [esi + 0x48fe98]
add eax, ecx
add eax, ebp
test byte [esi + eax*4 + 0x165160], 0x30
jne 0x4bb292
movsx ecx, word [esp + 0x40]
mov edx, dword [esp + 0x34]
push ecx
mov dword [esp + 0x18], ecx
push edx
push eax
mov ecx, esi
call fcn.004bb770
test eax, eax
je 0x4bb252
mov dword [esi + 0x48fe44], 1
mov eax, dword [esi + 0x48fe90]
inc ebx
cmp ebx, eax
jge 0x4bb2a6
push 5
push ebx
mov ecx, esi
call fcn.004ba330
mov eax, dword [esi + 0x48fe9c]
lea eax, [eax + edi + 0x20b43]
lea ecx, [eax + eax*2]
mov eax, dword [ecx*4 + 0x8682d0]
mov ecx, dword [esi + 0x48fe98]
add eax, ecx
add eax, ebp
test byte [esi + eax*4 + 0x165160], 0x30
je 0x4bb22d
mov dword [esi + 0x48fe44], 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x14
xor ebx, ebx
push 5
push ebx
mov ecx, esi
add edi, 5
call fcn.004ba330
mov edx, dword [esi + 0x48fe9c]
mov ecx, dword [esi + 0x48fe98]
lea eax, [edx + edi + 0x20b43]
mov edx, dword [esp + 0x10]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x8682d0]
add eax, ecx
add eax, edx
test byte [esi + eax*4 + 0x165160], 0x30
jne 0x4bb348
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
push ecx
push edx
push eax
mov ecx, esi
call fcn.004bb770
test eax, eax
je 0x4bb304
mov dword [esi + 0x48fe44], 1
mov eax, dword [esi + 0x48fe90]
inc ebx
cmp ebx, eax
jge 0x4bb35c
push 5
push ebx
mov ecx, esi
call fcn.004ba330
mov eax, dword [esi + 0x48fe9c]
mov edx, dword [esp + 0x10]
lea eax, [eax + edi + 0x20b43]
lea ecx, [eax + eax*2]
mov eax, dword [ecx*4 + 0x8682d0]
mov ecx, dword [esi + 0x48fe98]
add eax, ecx
add eax, edx
test byte [esi + eax*4 + 0x165160], 0x30
je 0x4bb2e4
mov dword [esi + 0x48fe44], 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x14
xor ebx, ebx
push 5
push ebx
mov ecx, esi
call fcn.004ba330
mov edx, dword [esi + 0x48fe9c]
mov ecx, dword [esi + 0x48fe98]
lea eax, [edx + edi + 0x20b43]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x8682d0]
add eax, ecx
add eax, ebp
test byte [esi + eax*4 + 0x165160], 0x30
jne 0x4bb3f3
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
push ecx
push edx
push eax
mov ecx, esi
call fcn.004bb770
test eax, eax
je 0x4bb3b3
mov dword [esi + 0x48fe44], 1
mov eax, dword [esi + 0x48fe90]
inc ebx
cmp ebx, eax
jge 0x4bb407
push 5
push ebx
mov ecx, esi
call fcn.004ba330
mov eax, dword [esi + 0x48fe9c]
lea eax, [eax + edi + 0x20b43]
lea ecx, [eax + eax*2]
mov eax, dword [ecx*4 + 0x8682d0]
mov ecx, dword [esi + 0x48fe98]
add eax, ecx
add eax, ebp
test byte [esi + eax*4 + 0x165160], 0x30
je 0x4bb393
mov dword [esi + 0x48fe44], 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x14
mov ax, word [esp + 0x40]
cmp ax, 0x58
je 0x4bb41c
cmp ax, 0x59
jne 0x4bb4d9
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x10]
xor ebx, ebx
push 5
push ebx
mov ecx, esi
lea edi, [edx + 5]
call fcn.004ba330
mov eax, dword [esi + 0x48fe9c]
mov edx, ebp
lea eax, [eax + edi + 0x20b43]
lea ecx, [eax + eax*2]
mov eax, dword [ecx*4 + 0x8682d0]
mov ecx, dword [esi + 0x48fe98]
add eax, ecx
add eax, edx
test byte [esi + eax*4 + 0x165160], 0x30
jne 0x4bb4c5
movsx ecx, word [esp + 0x40]
mov edx, dword [esp + 0x34]
push ecx
push edx
push eax
mov ecx, esi
call fcn.004bb770
test eax, eax
je 0x4bb481
mov dword [esi + 0x48fe44], 1
mov eax, dword [esi + 0x48fe90]
inc ebx
cmp ebx, eax
jge 0x4bb4d9
push 5
push ebx
mov ecx, esi
call fcn.004ba330
mov eax, dword [esi + 0x48fe9c]
mov edx, dword [esp + 0x10]
lea eax, [eax + edi + 0x20b43]
lea ecx, [eax + eax*2]
mov eax, dword [ecx*4 + 0x8682d0]
mov ecx, dword [esi + 0x48fe98]
add eax, ecx
add eax, edx
test byte [esi + eax*4 + 0x165160], 0x30
je 0x4bb460
mov dword [esi + 0x48fe44], 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x14
mov ax, word [esp + 0x40]
cmp ax, 0xb4
jne 0x4bb59b
xor edi, edi
push 4
push edi
mov ecx, esi
call fcn.004ba330
mov edx, dword [esi + 0x48fe9c]
mov ebp, dword [esp + 0x3c]
mov ebx, dword [esi + 0x48fe98]
lea eax, [edx + ebp + 0x20b47]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x8682d0]
add eax, ebx
mov ebx, dword [esp + 0x10]
add eax, ebx
test byte [esi + eax*4 + 0x165160], 0x30
jne 0x4bb587
mov ecx, dword [esp + 0x34]
push 0xb4
push ecx
push eax
mov ecx, esi
call fcn.004bb770
test eax, eax
je 0x4bb547
mov dword [esi + 0x48fe44], 1
mov eax, dword [esi + 0x48fe90]
inc edi
cmp edi, eax
jge 0x4bb5c7
push 4
push edi
mov ecx, esi
call fcn.004ba330
mov edx, dword [esi + 0x48fe9c]
mov ecx, dword [esi + 0x48fe98]
lea eax, [edx + ebp + 0x20b47]
lea eax, [eax + eax*2]
mov eax, dword [eax*4 + 0x8682d0]
add eax, ecx
add eax, ebx
test byte [esi + eax*4 + 0x165160], 0x30
je 0x4bb527
mov dword [esi + 0x48fe44], 2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x14
cmp ax, 0x42
jne 0x4bb5c7
mov ecx, dword [esp + 0x34]
push edi
push ebp
push 0x4c
push ecx
mov ecx, 0x152b748
call fcn.0047aa50
mov eax, dword [0x152b778]
test eax, eax
jne 0x4bb5c7
mov dword [esi + 0x48fe44], 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0x14