Function at 0x1004c650
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
lea esp, [esp - 0x24]
mov dword [esp + 4], eax
mov dword [esp], edx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp]
mov dword [eax], 0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 4]
add dword [eax + 0x5b0], 2
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
mov ax, word [eax - 2]
cmp ax, 0x24
jb 0x1004d320
sub ax, 0x24
je 0x1004c760
sub ax, 4
je 0x1004cde0
sub ax, 1
je 0x1004d030
sub ax, 1
jb 0x1004d320
sub ax, 1
jbe 0x1004d050
sub ax, 3
je 0x1004c7b0
sub ax, 0x11
je 0x1004d050
sub ax, 0x1c
je 0x1004c800
sub ax, 1
je 0x1004d070
sub ax, 2
je 0x1004c710
sub ax, 0x1e
je 0x1004d030
jmp 0x1004d320
mov eax, dword [esp + 4]
cmp byte [eax + 0x5ec], 0
je 0x1004c72f
cmp dword [eax + 0x604], 0
jne 0x1004c748
cmp byte [eax + 0x608], 0
jne 0x1004c748
mov eax, dword [esp + 4]
mov dx, 1
call fcn.1004ab20
mov dword [esp + 8], eax
jmp 0x1004d5c0
mov eax, dword [esp + 4]
mov dx, 0x22
call fcn.1004ab20
mov dword [esp + 8], eax
jmp 0x1004d5c0
mov eax, dword [esp + 4]
cmp byte [eax + 0x5ec], 0
je 0x1004c77f
cmp dword [eax + 0x604], 0
jne 0x1004c798
cmp byte [eax + 0x608], 0
jne 0x1004c798
mov eax, dword [esp + 4]
mov dx, 2
call fcn.1004ab20
mov dword [esp + 8], eax
jmp 0x1004d5c0
mov eax, dword [esp + 4]
mov dx, 0x23
call fcn.1004ab20
mov dword [esp + 8], eax
jmp 0x1004d5c0
mov eax, dword [esp + 4]
cmp byte [eax + 0x5ea], 0
je 0x1004c7e0
mov eax, dword [esp + 4]
mov dx, 3
call fcn.1004ab20
mov dword [esp + 8], eax
mov eax, dword [esp]
or dword [eax], 3
jmp 0x1004d5c0
mov eax, dword [esp + 4]
mov dx, 0x24
call fcn.1004ab20
mov dword [esp + 8], eax
mov eax, dword [esp]
or dword [eax], 1
jmp 0x1004d5c0
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
cmp word [eax], 0x5e
jne 0x1004c860
mov eax, dword [esp + 4]
cmp byte [eax + 0x5e8], 0
je 0x1004c838
mov eax, dword [esp + 4]
mov dx, 0x16
call fcn.1004ab20
mov dword [esp + 8], eax
jmp 0x1004c849
mov eax, dword [esp + 4]
mov dx, 5
call fcn.1004ab20
mov dword [esp + 8], eax
mov eax, dword [esp + 4]
add dword [eax + 0x5b0], 2
jmp 0x1004c891
mov eax, dword [esp + 4]
cmp byte [eax + 0x5e8], 0
je 0x1004c880
mov eax, dword [esp + 4]
mov dx, 0x15
call fcn.1004ab20
mov dword [esp + 8], eax
jmp 0x1004c891
mov eax, dword [esp + 4]
mov dx, 4
call fcn.1004ab20
mov dword [esp + 8], eax
mov byte [esp + 0x10], 0
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
cmp word [eax], 0x5d
jne 0x1004cd59
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
cmp word [eax + 2], 0x2d
sete cl
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
mov dx, word [eax]
mov eax, esp
call fcn.1004d6f0
mov eax, dword [esp + 4]
add dword [eax + 0x5b0], 2
jmp 0x1004cd59
mov eax, dword [esp + 4]
mov edx, dword [eax + 0x5b0]
cmp word [edx], 0x2d
jne 0x1004c930
add edx, 2
cmp edx, dword [eax + 0x5ac]
jae 0x1004c930
cmp word [edx], 0x5d
jne 0x1004c930
mov eax, esp
xor cl, cl
mov dx, 0x2d
call fcn.1004d6f0
mov eax, dword [esp + 4]
add dword [eax + 0x5b0], 2
jmp 0x1004cd76
mov eax, dword [esp + 4]
mov edx, dword [eax + 0x5b0]
cmp word [edx], 0x2d
jne 0x1004ca50
add edx, 2
cmp edx, dword [eax + 0x5ac]
jae 0x1004ca50
cmp byte [esp + 0x10], 0
je 0x1004ca50
mov eax, dword [esp + 4]
add dword [eax + 0x5b0], 2
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
mov bx, word [eax]
cmp bx, 0x5c
jne 0x1004c9d1
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
mov ax, word [eax + 2]
call fcn.100497b0
test al, al
je 0x1004c9b0
mov eax, dword [esp + 4]
mov edx, 0x76
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x1004d5c8
mov eax, dword [esp + 4]
add dword [eax + 0x5b0], 2
mov eax, dword [esp + 4]
lea edx, [eax + 0x5b0]
mov eax, dword [esp + 4]
call fcn.1004c3b0
mov bx, ax
mov eax, dword [esp + 4]
cmp byte [eax + 0x5e9], 0
je 0x1004ca10
cmp word [esp + 0xc], 0x430
jne 0x1004ca10
cmp bx, 0x42f
jne 0x1004ca10
mov eax, esp
mov cx, 0x44f
mov dx, 0x430
call fcn.1004d5e0
mov eax, esp
mov cx, 0x42f
mov dx, 0x410
call fcn.1004d5e0
jmp 0x1004ca3f
cmp bx, word [esp + 0xc]
jae 0x1004ca30
mov eax, dword [esp + 4]
mov edx, 0x6d
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x1004d5c8
mov dx, word [esp + 0xc]
mov eax, esp
mov cx, bx
call fcn.1004d5e0
mov eax, dword [esp + 4]
add dword [eax + 0x5b0], 2
jmp 0x1004cd59
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
cmp word [eax], 0x5c
jne 0x1004cd08
mov eax, dword [esp + 4]
add dword [eax + 0x5b0], 2
mov edx, dword [esp + 4]
mov eax, dword [edx + 0x5b0]
cmp eax, dword [edx + 0x5ac]
jb 0x1004caa0
mov eax, dword [esp + 4]
mov edx, 0x6e
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x1004d5c8
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
mov ax, word [eax]
call fcn.100497b0
test al, al
je 0x1004ccb0
mov dword [esp + 0x14], 0
mov byte [esp + 0x10], 0
mov eax, dword [esp + 4]
mov dx, 2
call fcn.1004abb0
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
mov ax, word [eax]
cmp ax, 0x44
jb 0x1004cc90
sub ax, 0x44
je 0x1004cbf0
sub ax, 4
je 0x1004cc70
sub ax, 0xb
je 0x1004cbb0
sub ax, 3
je 0x1004cc30
sub ax, 1
je 0x1004cb70
sub ax, 0xd
je 0x1004cbd0
sub ax, 4
je 0x1004cc50
sub ax, 0xb
je 0x1004cb90
sub ax, 3
je 0x1004cc10
sub ax, 1
jne 0x1004cc90
mov eax, dword [esp + 4]
movzx dx, byte [eax + 0x71c]
mov eax, dword [esp + 4]
call fcn.1004abb0
jmp 0x1004cd4e
mov eax, dword [esp + 4]
movzx dx, byte [eax + 0x71d]
mov eax, dword [esp + 4]
call fcn.1004abb0
jmp 0x1004cd4e
mov eax, dword [esp + 4]
movzx dx, byte [eax + 0x720]
mov eax, dword [esp + 4]
call fcn.1004abb0
jmp 0x1004cd4e
mov eax, dword [esp + 4]
movzx dx, byte [eax + 0x721]
mov eax, dword [esp + 4]
call fcn.1004abb0
jmp 0x1004cd4e
mov eax, dword [esp + 4]
movzx dx, byte [eax + 0x71e]
mov eax, dword [esp + 4]
call fcn.1004abb0
jmp 0x1004cd4e
mov eax, dword [esp + 4]
movzx dx, byte [eax + 0x71f]
mov eax, dword [esp + 4]
call fcn.1004abb0
jmp 0x1004cd4e
mov eax, dword [esp + 4]
movzx dx, byte [eax + 0x724]
mov eax, dword [esp + 4]
call fcn.1004abb0
jmp 0x1004cd4e
mov eax, dword [esp + 4]
movzx dx, byte [eax + 0x725]
mov eax, dword [esp + 4]
call fcn.1004abb0
jmp 0x1004cd4e
mov eax, dword [esp + 4]
movzx dx, byte [eax + 0x722]
mov eax, dword [esp + 4]
call fcn.1004abb0
jmp 0x1004cd4e
mov eax, dword [esp + 4]
movzx dx, byte [eax + 0x723]
mov eax, dword [esp + 4]
call fcn.1004abb0
jmp 0x1004cd4e
mov eax, dword [esp + 4]
mov edx, 0x3f0
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x1004cd4e
mov eax, dword [esp + 4]
lea edx, [eax + 0x5b0]
mov eax, dword [esp + 4]
call fcn.1004c3b0
mov si, ax
mov eax, dword [esp + 4]
mov edx, dword [eax + 0x5b0]
lea ecx, [edx + 4]
cmp ecx, dword [eax + 0x5ac]
jae 0x1004ccef
cmp word [edx + 2], 0x2d
jne 0x1004ccef
cmp word [ecx], 0x5d
setne byte [esp + 0x20]
jmp 0x1004ccf4
mov byte [esp + 0x20], 0
mov eax, esp
mov cl, byte [esp + 0x20]
mov dx, si
call fcn.1004d6f0
jmp 0x1004cd4e
mov edx, dword [esp + 4]
mov eax, dword [edx + 0x5b0]
lea ecx, [eax + 4]
cmp ecx, dword [edx + 0x5ac]
jae 0x1004cd31
cmp word [eax + 2], 0x2d
jne 0x1004cd31
cmp word [ecx], 0x5d
setne byte [esp + 0x20]
jmp 0x1004cd36
mov byte [esp + 0x20], 0
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
mov dx, word [eax]
mov eax, esp
mov cl, byte [esp + 0x20]
call fcn.1004d6f0
mov eax, dword [esp + 4]
add dword [eax + 0x5b0], 2
mov edx, dword [esp + 4]
mov eax, dword [edx + 0x5b0]
cmp eax, dword [edx + 0x5ac]
jae 0x1004cd76
cmp word [eax], 0x5d
jne 0x1004c8e8
mov dword [esp + 0x14], 0
mov byte [esp + 0x10], 0
mov eax, dword [esp + 4]
mov dx, 1
call fcn.1004abb0
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
cmp word [eax], 0x5d
je 0x1004cdc0
mov eax, dword [esp + 4]
mov edx, 0x71
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x1004d5c8
mov eax, dword [esp + 4]
add dword [eax + 0x5b0], 2
mov eax, dword [esp]
or dword [eax], 3
jmp 0x1004d5c0
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
cmp word [eax], 0x3f
jne 0x1004cfb0
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
cmp word [eax + 2], 0x3a
jne 0x1004ce58
mov eax, dword [esp + 4]
add dword [eax + 0x5b0], 4
lea ecx, [esp + 0x18]
mov eax, dword [esp + 4]
mov edx, 1
call fcn.1004b720
mov dword [esp + 8], eax
test eax, eax
jne 0x1004ce40
mov dword [esp + 0x1c], 0
jmp 0x1004d5c8
mov edx, dword [esp + 0x18]
and edx, 5
mov eax, dword [esp]
or dword [eax], edx
jmp 0x1004d5c0
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
cmp word [eax + 2], 0x23
jne 0x1004cef8
mov eax, dword [esp + 4]
add dword [eax + 0x5b0], 4
jmp 0x1004ce8b
mov eax, dword [esp + 4]
add dword [eax + 0x5b0], 2
mov edx, dword [esp + 4]
mov eax, dword [edx + 0x5b0]
cmp eax, dword [edx + 0x5ac]
jae 0x1004cea4
cmp word [eax], 0x29
jne 0x1004ce80
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
cmp word [eax], 0x29
je 0x1004ced0
mov eax, dword [esp + 4]
mov edx, 0x7d
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x1004d5c8
mov eax, dword [esp + 4]
add dword [eax + 0x5b0], 2
mov eax, dword [esp + 4]
mov dx, 0x13
call fcn.1004ab20
mov dword [esp + 8], eax
jmp 0x1004d5c0
mov eax, dword [esp + 4]
add dword [eax + 0x5b0], 2
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
jmp 0x1004cf1b
mov edx, dword [esp + 4]
add dword [edx + 0x5b0], 2
mov edx, dword [esp + 4]
mov ecx, dword [edx + 0x5b0]
cmp ecx, dword [edx + 0x5ac]
jae 0x1004cf34
cmp word [ecx], 0x29
jne 0x1004cf10
mov edx, dword [esp + 4]
mov edx, dword [edx + 0x5b0]
cmp word [edx], 0x29
jne 0x1004cf6d
mov edx, dword [esp + 4]
mov edx, dword [edx + 0x5b0]
sub edx, eax
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
sar edx, 1
mov ecx, dword [esp + 4]
add ecx, 0x5e8
call fcn.100499f0
test al, al
jne 0x1004cf88
mov eax, dword [esp + 4]
mov edx, 0x7f
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x1004d5c8
mov eax, dword [esp + 4]
add dword [eax + 0x5b0], 2
mov eax, dword [esp + 4]
mov dx, 0x13
call fcn.1004ab20
mov dword [esp + 8], eax
jmp 0x1004d5c0
mov eax, dword [esp + 4]
cmp byte [eax + 0x5cd], 0
je 0x1004cfec
mov eax, dword [esp + 4]
cmp dword [eax + 0x43c], 0x59
jge 0x1004cfec
mov eax, dword [esp + 4]
add dword [eax + 0x43c], 1
mov ecx, dword [esp + 4]
mov eax, dword [ecx + 0x43c]
mov edx, dword [ecx + 0x5b4]
mov dword [ecx + eax*4 + 0x2d4], edx
lea ecx, [esp + 0x18]
mov eax, dword [esp + 4]
mov edx, 1
call fcn.1004b720
mov dword [esp + 8], eax
test eax, eax
jne 0x1004d018
mov dword [esp + 0x1c], 0
jmp 0x1004d5c8
mov edx, dword [esp + 0x18]
and edx, 5
mov eax, dword [esp]
or dword [eax], edx
jmp 0x1004d5c0
mov eax, dword [esp + 4]
mov edx, 0x72
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x1004d5c8
mov eax, dword [esp + 4]
mov edx, 0x73
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x1004d5c8
mov edx, dword [esp + 4]
mov eax, dword [edx + 0x5b0]
cmp eax, dword [edx + 0x5ac]
jb 0x1004d0a0
mov eax, dword [esp + 4]
mov edx, 0x74
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x1004d5c8
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
mov ax, word [eax]
sub ax, 0x31
cmp ax, 0x46
ja case.0x1004d0be.58
movzx eax, ax
jmp dword [eax*4 + 0x100969c8]
mov eax, dword [esp + 4]
mov dx, 0x25
call fcn.1004ab20
mov dword [esp + 8], eax
jmp 0x1004d310
mov eax, dword [esp + 4]
mov dx, 0x26
call fcn.1004ab20
mov dword [esp + 8], eax
jmp 0x1004d310
mov eax, dword [esp + 4]
mov dx, 1
call fcn.1004ab20
mov dword [esp + 8], eax
jmp 0x1004d310
mov eax, dword [esp + 4]
mov dx, 2
call fcn.1004ab20
mov dword [esp + 8], eax
jmp 0x1004d310
mov eax, dword [esp + 4]
mov dx, 0xc
call fcn.1004ab20
mov dword [esp + 8], eax
mov eax, dword [esp]
or dword [eax], 3
jmp 0x1004d310
mov eax, dword [esp + 4]
mov dx, 0xd
call fcn.1004ab20
mov dword [esp + 8], eax
mov eax, dword [esp]
or dword [eax], 3
jmp 0x1004d310
mov eax, dword [esp + 4]
mov dx, 0x10
call fcn.1004ab20
mov dword [esp + 8], eax
mov eax, dword [esp]
or dword [eax], 3
jmp 0x1004d310
mov eax, dword [esp + 4]
mov dx, 0x11
call fcn.1004ab20
mov dword [esp + 8], eax
mov eax, dword [esp]
or dword [eax], 3
jmp 0x1004d310
mov eax, dword [esp + 4]
mov dx, 0xe
call fcn.1004ab20
mov dword [esp + 8], eax
mov eax, dword [esp]
or dword [eax], 3
jmp 0x1004d310
mov eax, dword [esp + 4]
mov dx, 0xf
call fcn.1004ab20
mov dword [esp + 8], eax
mov eax, dword [esp]
or dword [eax], 3
jmp 0x1004d310
mov eax, dword [esp + 4]
mov dx, 0x29
call fcn.1004ab20
mov dword [esp + 8], eax
mov eax, dword [esp]
or dword [eax], 3
jmp 0x1004d310
mov eax, dword [esp + 4]
mov dx, 0x2a
call fcn.1004ab20
mov dword [esp + 8], eax
mov eax, dword [esp]
or dword [eax], 3
jmp 0x1004d310
mov eax, dword [esp + 4]
mov dx, 0x27
call fcn.1004ab20
mov dword [esp + 8], eax
mov eax, dword [esp]
or dword [eax], 3
jmp 0x1004d310
mov eax, dword [esp + 4]
mov dx, 0x28
call fcn.1004ab20
mov dword [esp + 8], eax
mov eax, dword [esp]
or dword [eax], 3
jmp 0x1004d310
mov eax, dword [esp + 4]
cmp byte [eax + 0x5e8], 0
je 0x1004d2b0
mov eax, dword [esp + 4]
mov dx, 0x1d
call fcn.1004ab20
mov dword [esp + 8], eax
jmp 0x1004d2c1
mov eax, dword [esp + 4]
mov dx, 0x1c
call fcn.1004ab20
mov dword [esp + 8], eax
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
movzx edx, word [eax]
sub edx, 0x30
mov eax, dword [esp + 4]
call fcn.1004abb0
mov eax, dword [esp]
or dword [eax], 3
jmp 0x1004d310
mov eax, dword [esp + 4]
lea edx, [eax + 0x5b0]
mov eax, dword [esp + 4]
call fcn.1004c3b0
mov dx, ax
mov eax, esp
call fcn.1004d770
nop dword [eax]
mov eax, dword [esp + 4]
add dword [eax + 0x5b0], 2
jmp 0x1004d5c0
mov eax, dword [esp + 4]
sub dword [eax + 0x5b0], 2
mov eax, dword [esp + 4]
cmp byte [eax + 0x5ed], 0
je 0x1004d420
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
cmp word [eax], 0x23
je 0x1004d367
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
mov ax, word [eax]
call fcn.10049760
test al, al
je 0x1004d420
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
cmp word [eax], 0x23
jne 0x1004d3eb
jmp 0x1004d38b
mov eax, dword [esp + 4]
add dword [eax + 0x5b0], 2
mov edx, dword [esp + 4]
mov eax, dword [edx + 0x5b0]
cmp eax, dword [edx + 0x5ac]
jae 0x1004d3bb
mov ax, word [eax]
cmp ax, 0xd
je 0x1004d3bb
cmp ax, 0xa
jne 0x1004d380
jmp 0x1004d3bb
mov eax, dword [esp + 4]
add dword [eax + 0x5b0], 2
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
mov ax, word [eax]
cmp ax, 0xd
je 0x1004d3b0
cmp ax, 0xa
je 0x1004d3b0
jmp 0x1004d401
mov eax, dword [esp + 4]
add dword [eax + 0x5b0], 2
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
mov ax, word [eax]
call fcn.10049760
test al, al
jne 0x1004d3e0
mov eax, dword [esp + 4]
mov dx, 0x13
call fcn.1004ab20
mov dword [esp + 8], eax
jmp 0x1004d5c0
mov eax, dword [esp + 4]
mov edx, dword [eax + 0x5ac]
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
call fcn.1004ac90
mov ebx, eax
test eax, eax
jg 0x1004d48f
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
cmp word [eax], 0x7b
je 0x1004d470
mov eax, dword [esp + 4]
mov edx, 0x77
mov ecx, dword [esp + 4]
mov ecx, dword [ecx]
call dword [ecx + 0x64]
jmp 0x1004d5c8
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
add eax, 2
mov edx, dword [esp + 4]
mov edx, dword [edx + 0x5ac]
call fcn.1004ac90
lea ebx, [eax + 1]
mov edx, dword [esp + 4]
lea eax, [ebx + ebx]
add eax, dword [edx + 0x5b0]
mov cx, word [eax]
cmp ebx, 1
jle 0x1004d4d2
cmp cx, 0x2a
sete dl
cmp cx, 0x2b
sete al
or dl, al
cmp cx, 0x3f
sete al
or dl, al
cmp cx, 0x7b
sete al
or dl, al
setne al
movzx eax, al
sub ebx, eax
mov eax, dword [esp]
or dword [eax], 1
cmp ebx, 1
jne 0x1004d4e3
mov eax, dword [esp]
or dword [eax], 2
mov eax, dword [esp + 4]
cmp byte [eax + 0x5e8], 0
je 0x1004d508
mov eax, dword [esp + 4]
mov dx, 0x14
call fcn.1004ab20
mov dword [esp + 8], eax
jmp 0x1004d519
mov eax, dword [esp + 4]
mov dx, 8
call fcn.1004ab20
mov dword [esp + 8], eax
mov eax, dword [esp + 4]
xor edx, edx
call fcn.1004abe0
jmp 0x1004d596
mov eax, dword [esp + 4]
cmp byte [eax + 0x5ed], 0
je 0x1004d553
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
mov ax, word [eax]
call fcn.10049760
test al, al
jne 0x1004d588
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5b0]
mov dx, word [eax]
mov eax, dword [esp + 4]
call fcn.1004abb0
mov edx, dword [esp + 4]
lea eax, [edx + 0x5b8]
cmp eax, dword [edx + 0x5bc]
je 0x1004d588
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x5c4]
add dword [eax], 1
mov eax, dword [esp + 4]
add dword [eax + 0x5b0], 2
sub ebx, 1
test ebx, ebx
jle 0x1004d5c0
mov eax, dword [esp + 4]
cmp byte [eax + 0x5ed], 0
je 0x1004d530
mov eax, dword [eax + 0x5b0]
cmp word [eax], 0x23
jne 0x1004d530
nop dword [eax + eax]
mov eax, dword [esp + 8]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
lea esp, [esp + 0x24]
pop esi
pop ebx
ret