Function at 0x10001a10
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x28
mov ecx, dword [esp + 0x34]
push ebx
mov ebx, dword [esp + 0x40]
push ebp
mov ebp, dword [esp + 0x34]
mov eax, dword [ebp + 0x20]
push esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x28], eax
push edi
xor edi, edi
add eax, 0xffffffdc
mov dword [esp + 0x18], edi
mov dword [esp + 0x28], edi
cmp eax, 0x57
ja case.0x10001a4e.52
movzx eax, byte [eax + 0x1000263c]
lea edx, [edi + 0x65]
jmp dword [eax*4 + 0x100025f8]
mov ecx, dword [ebp + 0x60]
push 1
push 0x5e
mov eax, esi
call fcn.10005f20
add esp, 8
test byte [ebp + 0x18], 0x80
je 0x10001a80
movsx ecx, word [ebp + 0x68]
push ecx
push 0x72
mov ecx, dword [ebp + 0x60]
mov eax, esi
call fcn.10005f20
add esp, 8
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x28
jmp fcn.10003a70
mov ecx, dword [ebp + 0x60]
push 1
push 0x24
mov eax, esi
call fcn.10005f20
add esp, 8
test byte [ebp + 0x18], 0x80
je 0x10001a80
movsx edx, word [ebp + 0x68]
push edx
push 0x61
jmp 0x10001a73
mov ecx, dword [ebp + 0x60]
push 1
push 0x5e
mov eax, esi
call fcn.10005f20
mov ecx, dword [ebp + 0x60]
push edi
push 0x5e
mov eax, esi
call fcn.10005f20
add esp, 0x10
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x28
jmp fcn.10003a70
mov ecx, dword [ebp + 0x60]
push 1
push 0x24
mov eax, esi
call fcn.10005f20
mov ecx, dword [ebp + 0x60]
push edi
push 0x24
mov eax, esi
call fcn.10005f20
add esp, 0x10
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x28
jmp fcn.10003a70
mov eax, ebp
call fcn.10002fc0
mov eax, dword [ebp + 0x60]
call fcn.10005d80
mov dword [esp + 0x3c], eax
cmp dword [ebp + 0x14], edi
jne 0x100025ee
push esi
push 0x72
mov edi, ebp
call fcn.10002700
mov eax, dword [esp + 0x44]
push eax
push 0x61
mov ecx, ebx
mov eax, ebp
call fcn.10002760
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov eax, ebp
call fcn.10002fc0
mov eax, dword [ebp + 0x60]
call fcn.10005d80
cmp dword [ebp + 0x14], 0
mov edi, eax
jne 0x100025ee
push esi
push 0x72
mov ecx, edi
mov eax, ebp
call fcn.10002760
push edi
push 0x61
mov eax, ebx
mov edi, ebp
call fcn.10002700
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov eax, ebp
call fcn.10002fc0
mov eax, dword [ebp + 0x60]
call fcn.10005d80
mov dword [esp + 0x3c], eax
cmp dword [ebp + 0x14], edi
jne 0x100025ee
push esi
push 0x72
mov edi, ebp
call fcn.10002700
mov ecx, dword [esp + 0x44]
push ecx
push 0x61
mov ecx, ebx
mov eax, ebp
call fcn.10002760
mov eax, dword [ebp + 0x60]
add esp, 0x10
call fcn.10005d80
cmp dword [ebp + 0x14], 0
mov edi, eax
jne 0x100025ee
push esi
push 0x72
mov ecx, edi
mov eax, ebp
call fcn.10002760
push edi
push 0x61
mov eax, ebx
mov edi, ebp
call fcn.10002700
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov eax, ebp
call fcn.10002fc0
mov eax, dword [ebp + 0x60]
call fcn.10005d80
cmp dword [ebp + 0x14], 0
mov edi, eax
jne 0x100025ee
push esi
push 0x72
mov ecx, edi
mov eax, ebp
call fcn.10002760
push edi
push 0x61
mov ecx, ebx
mov eax, ebp
call fcn.10002760
mov eax, dword [ebp + 0x60]
add esp, 0x10
call fcn.10005d80
cmp dword [ebp + 0x14], 0
mov dword [esp + 0x3c], eax
jne 0x100025ee
push esi
push 0x72
mov edi, ebp
call fcn.10002700
mov edx, dword [esp + 0x44]
push edx
push 0x61
mov eax, ebx
call fcn.10002700
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
movzx eax, word [ebp + 0x24]
mov dword [esp + 0x3c], eax
mov eax, ebp
call fcn.10003a70
mov eax, dword [ebp + 0x60]
call fcn.10005d80
mov edi, eax
mov eax, dword [ebp + 0x60]
call fcn.10005d80
cmp dword [ebp + 0x14], 0
mov dword [esp + 0x20], eax
jne 0x100025ee
mov ecx, eax
push ecx
push edi
push 0x4c
push 0x29
push ebp
call fcn.10001750
push eax
push ebp
call fcn.100030d0
mov eax, ebp
call fcn.10003a70
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x3c]
push edx
push eax
push edi
mov edi, ebp
call fcn.10003390
add esp, 0x28
cmp dword [ebp + 0x14], 0
jne 0x100025ee
mov ecx, dword [ebp + 0x60]
push eax
push 0x4c
mov eax, esi
call fcn.10005f20
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov dword [ebp + 0x20], edx
cmp dword [ebp + 0x14], edi
jne 0x100025ee
pop edi
pop esi
mov dword [ebp + 0x14], 0xd
pop ebp
pop ebx
add esp, 0x28
ret
mov ecx, dword [ebp + 0x18]
and cl, 3
cmp cl, 1
je 0x10001d27
mov dword [ebp + 0x20], edx
cmp dword [ebp + 0x14], edi
jne 0x100025ee
pop edi
pop esi
mov dword [ebp + 0x14], 8
pop ebp
pop ebx
add esp, 0x28
ret
mov eax, dword [ebp]
or dword [eax + 8], 0x20
movzx eax, word [ebp + 0x24]
mov edi, esi
mov ecx, ebx
mov esi, ebp
call fcn.10002ef0
mov edx, dword [ebp + 0x64]
mov eax, dword [ebp + 0x60]
push edx
push eax
call fcn.10005930
add esp, 8
cmp dword [ebp + 0x14], 0
jne 0x100025ee
jmp 0x10001f36
cmp word [ebp + 0x24], 1
jne 0x10001d73
mov edi, ebx
mov ebx, esi
mov esi, ebp
call fcn.10002b20
jmp 0x10001f36
push ebx
push esi
push ebp
call fcn.10002b60
add esp, 0xc
jmp 0x10001f36
test byte [ebp + 0x18], 0x40
je 0x10001d8f
movsx eax, word [ebp + 0x68]
jmp 0x10001d92
or eax, 0xffffffff
mov ecx, dword [ebp + 0x64]
mov edx, dword [ebp + 0x60]
push esi
push eax
push ecx
push edx
mov eax, ebx
call fcn.10005a80
add esp, 0x10
jmp 0x10001f36
cmp ecx, 0x4c
jne 0x10001e8a
mov dword [esp + 0x3c], edi
mov dword [esp + 0x2c], 0x70
mov eax, ebp
call fcn.10003a70
mov eax, dword [ebp + 0x60]
call fcn.10005d80
mov esi, eax
mov eax, dword [ebp + 0x60]
call fcn.10005d80
cmp dword [ebp + 0x14], 0
mov edi, eax
jne 0x100025ee
mov eax, dword [esp + 0x48]
mov ecx, dword [ebp + 0x60]
push 0
push 0x6e
mov ebx, esi
call fcn.10005f20
mov ebx, dword [esp + 0x54]
mov ecx, dword [ebp + 0x60]
push 0
push 0x6e
mov eax, edi
call fcn.10005f20
add esp, 0x10
cmp dword [ebp + 0x14], 0
jne 0x100025ee
push edi
push esi
push 0x70
push 0x29
push ebp
call fcn.10001750
mov dword [esp + 0x2c], eax
add esp, 0x14
mov eax, ebp
call fcn.10003a70
cmp dword [ebp + 0x14], 0
jne 0x100025ee
cmp dword [esp + 0x3c], 0
je 0x10001f3d
mov eax, dword [ebp + 0x30]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov dword [eax + ebx*4], esi
movsx eax, byte [esi + 1]
push ecx
push edx
or eax, 8
push eax
push 0x28
mov edi, ebp
call fcn.10003030
add esp, 0x10
cmp dword [ebp + 0x14], 0
jne 0x100025ee
mov dword [eax + 4], ebx
mov dword [eax + 0xc], esi
mov dword [esp + 0x18], eax
jmp 0x10001f3d
movzx eax, word [ebp + 0x24]
mov dword [esp + 0x3c], eax
cmp eax, edi
je 0x10001db8
inc dword [ebp + 0x2c]
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0x28], eax
cmp eax, dword [ebp + 0x34]
jb 0x10001dc0
mov esi, ebp
call fcn.10001450
jmp 0x10001dc0
cmp ecx, 0x4c
jne 0x10001ecd
mov dword [ebp + 0x20], edx
cmp dword [ebp + 0x14], edi
jne 0x10001ecd
mov dword [ebp + 0x14], 6
movzx eax, word [ebp + 0x24]
cmp eax, dword [ebp + 0x34]
jb 0x10001ee5
mov dword [ebp + 0x20], edx
cmp dword [ebp + 0x14], edi
jne 0x10001ee5
mov dword [ebp + 0x14], 6
mov ecx, dword [ebp + 0x30]
cmp dword [ecx + eax*4], edi
jne 0x10001f00
mov dword [ebp + 0x20], edx
cmp dword [ebp + 0x14], edi
jne 0x100025ee
mov dword [ebp + 0x14], 6
cmp dword [ebp + 0x14], edi
jne 0x100025ee
push ebx
push esi
push 0x10
push 0x62
mov edi, ebp
call fcn.10003030
movzx ecx, word [ebp + 0x24]
mov dword [eax + 4], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x38], ecx
mov ecx, dword [ebp + 0x60]
push 0
push 0x6e
mov eax, esi
call fcn.10005f20
add esp, 0x18
mov eax, ebp
call fcn.10003a70
mov eax, dword [ebp + 0x20]
add eax, 0xffffffd6
mov ecx, pe_nt_image_headers32
cmp eax, 0x51
ja case.0x10001f58.44
movzx edx, byte [eax + 0x100026a8]
jmp dword [edx*4 + 0x10002694]
mov dword [esp + 0x24], 0
mov dword [esp + 0x10], ecx
xor eax, eax
cmp word [ebp + 0x24], ax
sete al
inc eax
mov dword [esp + 0x14], eax
mov eax, ebp
call fcn.10003a70
mov esi, dword [esp + 0x18]
test esi, esi
je 0x100020bc
movsx eax, byte [esi + 1]
jmp 0x100020be
mov dword [esp + 0x24], 1
jmp 0x10001f67
mov dword [esp + 0x24], 0
mov dword [esp + 0x10], 1
jmp 0x10001f6b
mov eax, ebp
call fcn.10003a70
mov edi, ebp
call fcn.100027a0
cmp dword [ebp + 0x20], 0x2c
mov esi, eax
mov dword [esp + 0x24], esi
jne 0x10002025
mov eax, ebp
call fcn.10003a70
test eax, eax
je 0x10002025
cmp dword [ebp + 0x20], 0x64
jne 0x10001fe7
call fcn.100027a0
mov dword [esp + 0x10], eax
jmp 0x10001fef
mov dword [esp + 0x10], pe_nt_image_headers32
cmp esi, dword [esp + 0x10]
jle 0x10002015
cmp dword [ebp + 0x14], 0
mov dword [ebp + 0x20], 0x65
jne 0x100025ee
pop edi
pop esi
mov dword [ebp + 0x14], 0xa
pop ebp
pop ebx
add esp, 0x28
ret
xor eax, eax
cmp word [ebp + 0x24], ax
sete al
inc eax
mov dword [esp + 0x14], eax
jmp 0x10002031
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], 0
cmp dword [ebp + 0x20], 0x7d
jne 0x10001ff5
mov eax, ebp
call fcn.10003a70
test esi, esi
jne 0x10001f80
cmp dword [esp + 0x10], esi
jne 0x10001f80
mov eax, dword [esp + 0x18]
test eax, eax
je 0x10002062
push eax
push ebp
call fcn.100030d0
add esp, 8
cmp dword [esp + 0x2c], 0x28
jne 0x10002077
mov eax, dword [ebp + 0x30]
mov ecx, dword [esp + 0x28]
mov dword [eax + ecx*4], 0
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
mov eax, dword [ebp + 0x60]
call fcn.10006270
mov ecx, dword [ebp + 0x60]
push 0
push 0x6e
mov ebx, esi
mov eax, edi
call fcn.10005f20
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov eax, 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x14], 0
jmp 0x10001f80
xor eax, eax
mov edi, dword [esp + 0x50]
movsx ebx, byte [edi + 1]
or ebx, eax
mov eax, dword [esp + 0x2c]
or ebx, dword [esp + 0x14]
cmp eax, 0x28
je 0x1000212d
cmp eax, 0x62
je 0x1000212d
mov edx, ebx
and edx, 1
add edx, edx
and edx, ebx
add edx, edx
or edx, ebx
test dl, 0x1c
jne 0x1000212d
mov eax, dword [esp + 0x24]
cmp eax, 1
jne 0x100020fb
cmp dword [esp + 0x10], eax
je 0x10002114
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x4c]
push ecx
push eax
mov eax, dword [esp + 0x50]
push edx
push eax
push ebp
call fcn.10002800
add esp, 0x14
test esi, esi
je 0x10002122
push esi
push ebp
call fcn.100030d0
add esp, 8
mov byte [edi + 1], bl
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
test esi, esi
jne 0x10002158
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
push ecx
push edx
push esi
push 0x3d
mov edi, ebp
call fcn.10003030
add esp, 0x10
cmp dword [ebp + 0x14], 0
mov esi, eax
mov dword [esp + 0x18], esi
jne 0x100025ee
mov eax, dword [ebp + 0x60]
call fcn.10005d80
mov ebx, eax
mov eax, dword [ebp + 0x60]
call fcn.10005d80
cmp dword [ebp + 0x14], 0
mov dword [esp + 0x20], eax
jne 0x100025ee
mov eax, dword [esp + 0x48]
mov edi, dword [ebp + 0x60]
push ebx
push eax
call fcn.10006230
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x28]
mov edi, dword [ebp + 0x60]
push ecx
call fcn.100061f0
add esp, 0xc
cmp dword [ebp + 0x14], 0
jne 0x100025ee
mov edx, dword [esp + 0x20]
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], edx
mov eax, dword [ebp + 0x60]
call fcn.10005d80
mov dword [esp + 0x3c], eax
mov eax, dword [ebp + 0x60]
call fcn.10005d80
cmp dword [ebp + 0x14], 0
mov dword [esp + 0x20], eax
jne 0x100025ee
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [ebp + 0x60]
push 0
push 0x6e
mov eax, edi
call fcn.10005f20
mov ebx, dword [esp + 0x28]
mov ecx, dword [ebp + 0x60]
push 0
push 0x6e
mov eax, edi
call fcn.10005f20
add esp, 0x10
cmp dword [ebp + 0x14], 0
jne 0x100025ee
mov ecx, dword [esp + 0x14]
and ecx, 3
mov dword [esp + 0x30], ecx
jne 0x10002219
movsx ecx, byte [esi + 1]
and ecx, 3
movsx eax, byte [esi + 1]
or eax, dword [esp + 0x14]
mov edx, dword [esp + 0x4c]
push edx
mov edx, eax
and edx, 1
add edx, edx
and edx, eax
add edx, edx
and eax, 0xfffffffc
mov ebx, edi
or edx, eax
push ebx
or edx, ecx
push edx
push 0x2e
mov edi, ebp
call fcn.10003030
mov dword [esp + 0x2c], eax
add eax, 0xc
push ebx
mov ebx, dword [esp + 0x64]
mov dword [eax], esi
movsx ecx, byte [ebx + 1]
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 0x14]
push eax
push ecx
push 0x3d
call fcn.10003030
mov edx, dword [esp + 0x3c]
add esp, 0x20
cmp dword [esp + 0x2c], 0x62
mov dword [ebx + 0xc], eax
mov byte [ebx], 0x2e
mov dword [ebx + 0x10], edx
jne 0x100022be
mov ebx, dword [esp + 0x18]
mov esi, dword [ebx + 0x18]
mov edi, dword [ebx + 0x14]
mov eax, dword [ebp + 0x60]
call fcn.10006270
mov eax, dword [ebp + 0x30]
mov ecx, dword [esp + 0x28]
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp + 0x60]
mov ecx, dword [ebx + 0x18]
mov esi, dword [edx + 0x18]
mov edi, dword [edx + 0x14]
push eax
mov eax, dword [ebx + 0x14]
call fcn.10006300
add esp, 4
cmp dword [ebp + 0x14], 0
jne 0x100025ee
mov esi, ebx
mov edi, dword [esp + 0x24]
test edi, edi
jne 0x100023a0
mov ebx, dword [esi + 0x18]
mov eax, dword [esp + 0x20]
mov ecx, dword [ebp + 0x60]
push edi
push 0x6e
call fcn.10005f20
mov ecx, dword [esp + 0x38]
add esp, 8
test ecx, ecx
jne 0x100022ee
movsx ecx, byte [esi + 1]
and ecx, 3
movsx eax, byte [esi + 1]
or eax, dword [esp + 0x14]
mov edx, dword [esp + 0x48]
mov ebx, eax
and ebx, 1
add ebx, ebx
and ebx, eax
add ebx, ebx
and eax, 0xfffffffc
or ebx, eax
or ebx, ecx
mov ecx, dword [esi + 0x18]
push ecx
push edx
push ebx
push 0x7c
mov edi, ebp
call fcn.10003030
add esp, 0x10
cmp dword [ebp + 0x14], 0
mov dword [esp + 0x1c], eax
jne 0x100025ee
mov ecx, dword [esp + 0x20]
add eax, 0xc
mov dword [esp + 0x28], eax
mov dword [eax], esi
mov eax, dword [esi + 0x18]
push eax
push ecx
and ebx, 3
push ebx
push 0x7c
call fcn.10003030
mov edx, dword [esp + 0x2c]
add esp, 0x10
mov dword [edx + 0x10], eax
cmp dword [ebp + 0x14], 0
jne 0x100025ee
mov eax, dword [esi + 0x18]
mov ecx, dword [esp + 0x20]
push eax
push ecx
push 0
push 0x3d
call fcn.10003030
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x10]
add esp, 0x10
mov dword [edx + 0xc], eax
cmp dword [ebp + 0x14], 0
jne 0x100025ee
mov eax, dword [esp + 0x34]
mov dword [eax], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x24], 1
mov edi, dword [esp + 0x24]
mov dword [esp + 0x34], ecx
cmp dword [esp + 0x2c], 0x62
jne 0x10002411
mov ebx, dword [esi + 0x14]
mov eax, dword [esp + 0x3c]
mov ecx, dword [ebp + 0x60]
push 0
push 0x6e
call fcn.10005f20
mov ebx, dword [esp + 0x18]
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x14]
push ebx
push edi
push edx
push eax
push ebp
call fcn.10002800
add esp, 0x1c
cmp dword [esp + 0x30], 0
mov word [esi + 8], di
mov word [esi + 0xa], bx
je 0x100023e6
mov edx, dword [esp + 0x30]
jmp 0x100023ed
movsx edx, byte [esi + 1]
and edx, 3
mov cl, byte [esi + 1]
mov al, cl
or al, byte [esp + 0x14]
mov bl, al
and bl, 1
add bl, bl
and bl, al
add bl, bl
and al, 0xfc
or bl, al
or bl, cl
or bl, dl
mov byte [esi + 1], bl
jmp 0x100024fe
cmp edi, 1
jne 0x10002437
cmp dword [esp + 0x10], edi
jne 0x10002437
mov ebx, dword [esi + 0x14]
mov eax, dword [esp + 0x3c]
mov ecx, dword [ebp + 0x60]
push 0
push 0x6e
call fcn.10005f20
add esp, 8
jmp 0x100024fe
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebp + 0x60]
mov eax, dword [esp + 0x3c]
mov esi, dword [ebx + 0x18]
push edx
mov edi, ecx
call fcn.10006300
mov eax, dword [esp + 0x14]
add esp, 4
cmp eax, 0x100
jne 0x10002460
jmp 0x10002461
dec eax
mov ecx, dword [ebx + 0x14]
mov edx, dword [esp + 0x3c]
push eax
mov eax, dword [esp + 0x28]
dec eax
push eax
push ecx
push edx
push ebp
call fcn.10002800
mov ecx, dword [esp + 0x44]
add esp, 0x14
test ecx, ecx
jne 0x10002489
movsx ecx, byte [ebx + 1]
and ecx, 3
movsx eax, byte [ebx + 1]
or eax, dword [esp + 0x14]
mov edi, ebp
mov esi, eax
and esi, 1
add esi, esi
and esi, eax
and eax, 0xfffffffc
add esi, esi
or esi, eax
mov eax, dword [ebx + 0x18]
or esi, ecx
mov ecx, dword [esp + 0x3c]
push eax
push ecx
push esi
push 0x2e
call fcn.10003030
add esp, 0x10
cmp dword [ebp + 0x14], 0
mov dword [esp + 0x1c], eax
jne 0x100025ee
mov edx, dword [ebx + 0x14]
mov eax, dword [esp + 0x3c]
push edx
push eax
and esi, 3
push esi
push 0x3d
call fcn.10003030
mov ecx, dword [esp + 0x2c]
add esp, 0x10
mov dword [ecx + 0xc], eax
cmp dword [ebp + 0x14], 0
jne 0x100025ee
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x18]
mov eax, ecx
mov dword [eax + 0x10], ebx
mov dword [edx], eax
mov eax, dword [esp + 0x50]
mov edi, dword [eax + 0x10]
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x1c], edi
cmp eax, 0x7c
je 0x1000253a
mov ecx, dword [esp + 0x40]
cmp eax, ecx
je 0x1000253a
cmp eax, 0x65
je 0x1000253a
mov edx, dword [esp + 0x4c]
mov eax, dword [esi + 0x18]
push 1
push edx
mov edx, dword [esp + 0x4c]
push eax
push edx
push ecx
push ebp
call fcn.10001930
mov dword [edi + 0x10], eax
jmp 0x10002566
mov ebx, dword [esp + 0x4c]
mov eax, dword [esi + 0x18]
mov ecx, dword [ebp + 0x60]
push 0
push 0x6e
call fcn.10005f20
mov eax, dword [esi + 0x18]
push ebx
push eax
push 0
push 0x3d
mov edi, ebp
call fcn.10003030
mov ecx, dword [esp + 0x34]
mov dword [ecx + 0x10], eax
mov edi, ecx
add esp, 0x18
cmp dword [ebp + 0x14], 0
jne 0x100025ee
mov al, byte [edi + 1]
test al, 3
je 0x1000257b
movsx ebx, al
jmp 0x10002582
mov edx, dword [edi + 0x10]
movsx ebx, byte [edx + 1]
mov dl, byte [edi + 1]
mov eax, dword [edi + 0x10]
mov cl, byte [eax + 1]
mov esi, dword [esp + 0x50]
or cl, dl
mov al, cl
and al, 1
add al, al
and al, cl
add al, al
and cl, 0xfc
or al, cl
or al, dl
and ebx, 3
or al, bl
mov byte [edi + 1], al
mov cl, byte [esi + 1]
movsx edx, cl
test cl, 3
jne 0x100025b8
movsx edx, al
or al, cl
mov bl, al
and bl, 1
add bl, bl
and bl, al
add bl, bl
and al, 0xfc
or bl, al
or bl, cl
and edx, 3
or bl, dl
pop edi
mov byte [esi + 1], bl
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov dword [ebp + 0x20], 0x65
cmp dword [ebp + 0x14], edi
jne 0x100025ee
mov dword [ebp + 0x14], 0xf
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret