Function at 0x612910
Capabilities:
Contain obfuscated stackstrings
Parse credit card information

Disassembly:
mov eax, 0x10ce0
call fcn.0068cb50
mov eax, dword [esp + 0x10cf0]
push ebx
push ebp
mov ebp, dword [esp + 0x10cec]
push esi
push edi
mov edi, ecx
mov dword [esp + 0x18], edi
test eax, eax
je 0x612979
lea edx, [esp + 0xe0]
sub edx, eax
nop
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x612940
mov eax, dword [esp + 0x10d04]
mov dword [esp + 0x20], eax
test eax, eax
je 0x612991
lea edx, [eax + 2]
mov eax, edx
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x612974
cmp ecx, 9
jne 0x613154
add eax, 2
jmp 0x612963
cmp byte [esp + 0x10cf8], 3
jne 0x6129c3
xor eax, eax
mov word [esp + 0xe0], ax
mov dword [esp + 0x20], eax
mov byte [esp + 0x17], 0
mov dx, word [0x4bf3ec]
mov byte [esp + 0x16], 0
cmp word [ebp], dx
jne 0x6131ba
movzx eax, word [ebp + 2]
add ebp, 2
cmp eax, 0x20
je 0x6129ac
cmp eax, 9
jne 0x613993
jmp 0x6129ac
push 6
push 0x4a0f2c
push ebp
call fcn.00681e82
add esp, 0xc
test eax, eax
jne 0x6129f6
mov ecx, dword [0x4bf3fc]
mov ebx, dword [ecx + 0xb4]
neg ebx
sbb ebx, ebx
and ebx, 0xffffff80
add ebx, 0xc1
mov dword [esp + 0x1c], ebx
jmp 0x612a52
mov edx, dword [0x4bf3fc]
cmp dword [edx + 0xb4], 0
je 0x61312a
push 5
push 0x4a0f3c
push ebp
call fcn.00681e82
add esp, 0xc
test eax, eax
jne 0x612a2e
mov dword [esp + 0x1c], 0x42
mov ebx, dword [esp + 0x1c]
lea eax, [ebp + 0xa]
jmp 0x612a55
push 6
push 0x4a0640
push ebp
call fcn.00681e82
add esp, 0xc
test eax, eax
jne 0x61312a
mov dword [esp + 0x1c], 0x62
mov ebx, dword [esp + 0x1c]
lea eax, [ebp + 0xc]
movzx ecx, word [eax]
test cx, cx
je 0x6130d7
cmp ecx, 0x20
je 0x612a6f
cmp ecx, 9
jne 0x61312a
mov esi, eax
movzx eax, word [esi]
cmp eax, 0x20
je 0x612a7e
cmp eax, 9
jne 0x612a83
add esi, 2
jmp 0x612a71
cmp word [esi], 0
je 0x6130d7
movzx ebp, word [esi + 2]
xor eax, eax
push eax
push esi
mov word [esi + 2], ax
call fcn.0066ba90
add esp, 8
mov word [esi + 2], bp
test eax, eax
je 0x613123
mov ecx, edi
cmp byte [ecx + 0x44], 0
mov edi, dword [0x4bf3fc]
je 0x612b00
mov eax, dword [edi + 0xb4]
cmp byte [eax + 0x38], 0
jne 0x612b00
cmp ebx, 0x62
je 0x612ad8
cmp ebx, 0x42
setne dl
add dl, 0x41
mov byte [eax + 0x38], dl
mov eax, dword [ecx + 4]
test eax, eax
je 0x612b5a
mov al, byte [eax]
cmp al, 0xa
jb 0x612ae9
cmp al, 0x21
jbe 0x612af9
cmp al, 9
je 0x612af9
cmp al, 0x69
je 0x612af9
cmp al, 0x6b
je 0x612af9
cmp al, 0x6a
jne 0x612b5a
mov byte [esp + 0x2b], 1
jmp 0x612b5f
mov eax, dword [edi + 0xb4]
test eax, eax
je 0x612ad8
movzx eax, byte [eax + 0x38]
cmp ebx, eax
jne 0x612ad8
cmp ebx, 0x41
jne 0x612b36
mov edx, dword [esp + 0x10cf4]
push edx
push 0x4a0f48
call fcn.00627f10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
cmp ebx, 0x42
jne 0x612ad8
mov eax, dword [esp + 0x10cf4]
push eax
push 0x4a0fb8
call fcn.00627f10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov byte [esp + 0x2b], 0
cmp word [esi], 0
mov byte [esp + 0x16], 0
mov ebp, esi
je 0x6130f7
mov ebx, 0x4a1028
mov eax, ebp
call fcn.00601c90
mov dword [esp + 0x20], eax
test eax, eax
jne 0x612ba7
mov eax, ebp
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x612b90
sub eax, edx
sar eax, 1
lea eax, [ebp + eax*2]
mov dword [esp + 0x20], eax
mov esi, eax
sub esi, ebp
sar esi, 1
cmp dword [edi + 0xb4], 0
je 0x612c99
mov eax, dword [edi + 0xb4]
xor ebx, ebx
cmp dword [eax + 0x10], ebx
jle 0x612c02
xor edi, edi
lea esp, [esp]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + edi]
mov eax, dword [edx + 0x18]
push 0xffffffffffffffff
push esi
mov ecx, ebp
call fcn.00668620
add esp, 8
test eax, eax
je 0x61303f
mov eax, dword [0x4bf3fc]
mov eax, dword [eax + 0xb4]
inc ebx
add edi, 0x10
cmp ebx, dword [eax + 0x10]
jl 0x612bd0
mov ecx, dword [esp + 0x18]
push 0
push 2
push 0
push esi
push ebp
call fcn.00619190
mov ebx, eax
mov eax, dword [esp + 0x1c]
test ebx, ebx
je 0x612c3a
movzx ecx, byte [ebx + 0x16]
xor ecx, eax
test ecx, 0xffffffbf
jne 0x61305b
cmp eax, 0x62
je 0x61305b
xor ebx, ebx
cmp eax, 0x41
je 0x612c91
mov edx, dword [0x4bf3fc]
mov eax, dword [edx + 0xb4]
xor edi, edi
cmp dword [eax + 0x30], edi
jle 0x612c91
mov eax, dword [eax + 0x20]
mov ecx, dword [eax + edi*4]
mov ecx, dword [ecx + 0x18]
push esi
push 0xffffffffffffffff
mov eax, ebp
call fcn.00668620
add esp, 8
test eax, eax
je 0x612c80
mov edx, dword [0x4bf3fc]
mov eax, dword [edx + 0xb4]
inc edi
cmp edi, dword [eax + 0x30]
jl 0x612c52
jmp 0x612c91
mov eax, dword [0x4bf3fc]
mov ecx, dword [eax + 0xb4]
mov edx, dword [ecx + 0x20]
mov ebx, dword [edx + edi*4]
test ebx, ebx
jne 0x61305b
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push edi
push esi
push ebp
call fcn.00619130
mov ebx, eax
mov dword [esp + 0x34], ebx
test ebx, ebx
je 0x613030
mov al, byte [ebx + 0x17]
test al, al
jne 0x612cc4
mov eax, dword [ebx + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
jne 0x6130bb
push 0xffffffffffffffff
push esi
mov eax, 0x4a0378
mov ecx, ebp
call fcn.00668620
add esp, 8
test eax, eax
je 0x6130bb
cmp edi, 0x41
mov edi, dword [0x4bf3fc]
jne 0x612d1a
mov ecx, dword [edi + 0xb4]
cmp dword [ecx + 0x30], 0x7d0
jge 0x613083
mov eax, ecx
mov edx, dword [eax + 0x30]
mov eax, dword [eax + 0x20]
mov dword [eax + edx*4], ebx
mov eax, dword [edi + 0xb4]
inc dword [eax + 0x30]
jmp 0x612d28
mov eax, 0xc1
cmp dword [esp + 0x1c], eax
jne 0x612d28
mov byte [ebx + 0x16], al
mov eax, dword [esp + 0x20]
call fcn.00601ce0
movzx ecx, word [eax]
cmp ecx, 0x3d
ja 0x612d64
movzx ecx, byte [ecx + 0x41bc80]
jmp dword [ecx*4 + 0x41bc6c]
mov byte [esp + 0x17], 0
xor dl, dl
xor ebx, ebx
mov edi, eax
xor esi, esi
movzx ecx, word [eax + esi*2]
cmp ecx, 0x2c
jne 0x612e5f
test dl, dl
jne 0x612e8d
test ebx, ebx
jg 0x612e8d
lea esi, [eax + esi*2]
lea eax, [esi - 2]
mov edx, ebp
mov dword [esp + 0x20], esi
call fcn.00601d00
movzx edx, word [eax + 2]
lea ebx, [eax + 2]
xor eax, eax
cmp dword [esp + 0x1c], 0x62
mov dword [esp + 0x30], ebx
mov dword [esp + 0x24], edx
mov word [ebx], ax
jne 0x612f50
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 0x18]
movzx ebp, word [0x4bf3f4]
mov eax, edi
mov dword [esp + 0x38], edx
call fcn.00601ce0
mov edi, eax
mov ecx, edi
jmp 0x612de0
movzx eax, word [ecx]
test ax, ax
je 0x612e05
jmp 0x612df0
cmp ax, bp
je 0x612e93
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x612df0
mov esi, dword [esp + 0x18]
push 0
push 0x101
lea ecx, [esp + 0x40]
push ecx
push 2
push esi
mov dword [esp + 0x50], edi
call fcn.00614e10
test eax, eax
je 0x613030
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x10]
mov dword [esi + 4], eax
mov dword [eax + 0x14], 0
mov eax, dword [esi + 0xc]
test eax, eax
je 0x612f29
mov ecx, dword [esi + 0x624]
mov dword [eax + 0x14], ecx
jmp 0x612f32
cmp ecx, 0x7d
ja 0x612e8d
movzx ecx, byte [ecx + 0x41bcd4]
jmp dword [ecx*4 + 0x41bcc0]
inc esi
jmp 0x612d71
cmp word [ecx], 0
je 0x612e05
movzx eax, word [ecx + 2]
lea esi, [ecx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja 0x612ef5
movzx eax, byte [eax + 0x41bd78]
jmp dword [eax*4 + 0x41bd54]
mov eax, esi
lea ebx, [eax + 2]
lea ebx, [ebx]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x612f00
sub eax, ebx
sar eax, 1
lea eax, [eax + eax + 2]
push eax
push esi
push ecx
call fcn.006820b0
mov ebx, dword [esp + 0x3c]
add esp, 0xc
mov ecx, esi
jmp 0x612de0
mov edx, dword [esi + 0x624]
mov dword [esi + 8], edx
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x624]
mov dword [eax + 0x10], ecx
mov edx, dword [esi + 0x624]
mov dword [esi + 0xc], edx
mov esi, dword [esp + 0x20]
jmp 0x612fde
cmp byte [esp + 0x17], al
je 0x612f9b
lea edx, [esp + 0x8ce8]
mov eax, ebp
sub edx, ebp
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x612f61
push 0
push 0xffffffffffffffff
push 1
push 1
push 0x49e78c
lea eax, [esp + 0x8cfc]
push 0x49e794
push eax
xor eax, eax
call fcn.00668d20
add esp, 0x1c
lea ebp, [esp + 0x8ce8]
cmp byte [esp + 0x2b], 0
je 0x612fc4
cmp byte [esp + 0x16], 0
jne 0x612fc4
mov ecx, dword [esp + 0x18]
push 0
push 0
push 0
push 0x72
push ecx
call fcn.00614e10
test eax, eax
je 0x613030
mov byte [esp + 0x16], 1
mov ecx, dword [esp + 0x18]
push 0
push 0
push 0
push 0
push 0
push 0
push ebp
call fcn.00612910
test eax, eax
je 0x613030
mov dx, word [esp + 0x24]
mov word [ebx], dx
cmp word [esi], 0x2c
jne 0x612ff8
lea eax, [esi + 2]
call fcn.00601ce0
mov ebp, eax
jmp 0x612ffa
mov ebp, esi
mov edi, dword [0x4bf3fc]
cmp word [ebp], 0
jne 0x612b70
cmp byte [esp + 0x16], 0
je 0x6130f7
mov eax, dword [esp + 0x18]
push 0
push 0
push 0
push 0x73
push eax
call fcn.00614e10
test eax, eax
jne 0x6130f7
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov ecx, dword [esp + 0x18]
push ebp
push 0x4a1038
call fcn.00627f10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
test byte [ebx + 0x16], 0x40
mov eax, 0x4a107c
jne 0x61306b
mov eax, 0x4a10b0
mov ecx, dword [esp + 0x18]
push ebp
push eax
call fcn.00627f10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov ecx, dword [esp + 0x18]
push ebp
push 0x4a115c
call fcn.00627f10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov ecx, dword [esp + 0x18]
push ebp
push 0x4a1108
call fcn.00627f10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
cmp ebx, 0x42
je 0x613109
cmp byte [edi + 0x44], 0
je 0x613109
mov ecx, dword [0x4bf3fc]
mov eax, dword [ecx + 0xb4]
cmp byte [eax + 0x38], 0
jne 0x613109
mov byte [eax + 0x38], bl
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
push ebp
push 0x4a0780
mov ecx, edi
call fcn.00627f10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov ebp, dword [esp + 0x10cf4]
push 1
push ebp
lea edx, [esp + 0xe8]
push edx
push edi
call fcn.00614bf0
mov dword [esp + 0x20], eax
test eax, eax
jne 0x61295e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov ebp, eax
movzx eax, word [edx]
cmp ax, word [0x4bf3ec]
je 0x6131b0
test ax, ax
je 0x6131b0
cmp eax, 0x20
je 0x6131b0
cmp eax, 9
je 0x6131b0
cmp eax, 0x28
jne 0x612991
lea eax, [esp + 0xe0]
push 0x4a03cc
push eax
call fcn.00681649
add esp, 8
test eax, eax
je 0x6131b0
lea ecx, [esp + 0xe0]
push 0x4a03d4
push ecx
call fcn.00681649
add esp, 8
test eax, eax
jne 0x612991
mov byte [esp + 0x17], 1
jmp 0x612996
cmp byte [esp + 0x10cf8], 0
jne 0x613bbf
cmp byte [esp + 0x10cfc], 0
jne 0x6139a1
cmp byte [esp + 0x17], 0
je 0x6136a5
lea eax, [esp + 0xe0]
push 0x4a03cc
push eax
call fcn.00681649
add esp, 8
test eax, eax
jne 0x6136a5
movzx eax, word [ebp]
cmp eax, 0x28
je 0x6134d3
cmp ax, word [0x4bf3f0]
jne 0x61322a
movzx eax, word [ebp + 2]
cmp eax, 0x20
je 0x6134d3
cmp eax, 9
je 0x6134d3
mov dx, word [0x4bf3ec]
mov ecx, 0x20
xor eax, eax
mov word [esp + 0x40], cx
mov word [esp + 0x42], dx
mov edi, 0x3d
mov ecx, 0x3a
mov edx, edi
mov word [esp + 0x68], ax
lea ebx, [esp + 0x40]
mov eax, ebp
mov dword [esp + 0x44], 0x90028
mov dword [esp + 0x48], 0x3e003c
mov word [esp + 0x4c], cx
mov word [esp + 0x4e], dx
mov dword [esp + 0x50], 0x2d002b
mov dword [esp + 0x54], 0x2f002a
mov dword [esp + 0x58], 0x7e0021
mov dword [esp + 0x5c], 0x7c0026
mov dword [esp + 0x60], 0x5b005e
mov dword [esp + 0x64], 0x3f002e
call fcn.00601c90
test eax, eax
je 0x6132b5
call fcn.00601ce0
mov esi, eax
jmp 0x6132d3
mov eax, ebp
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x6132c0
sub eax, edx
sar eax, 1
lea esi, [ebp + eax*2]
push 3
push 0x49f32c
push ebp
call fcn.00681e82
add esp, 0xc
test eax, eax
jne 0x613301
movzx eax, word [ebp + 6]
push eax
lea ecx, [esp + 0x44]
push ecx
call fcn.00682411
add esp, 8
test eax, eax
je 0x613301
mov bl, 1
jmp 0x613303
xor bl, bl
movzx eax, word [esi]
add eax, 0xffffffdf
cmp eax, 0x4d
ja 0x6134d3
movzx edx, byte [eax + 0x41bdb4]
jmp dword [edx*4 + 0x41bd90]
mov byte [esp + 0x10cf8], 0x12
jmp 0x613539
mov eax, ebp
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x613540
sub eax, edx
sar eax, 1
cmp word [ebp + eax*2 - 2], 0x7b
lea eax, [ebp + eax*2 - 2]
jne 0x613bbf
xor edx, edx
mov word [eax], dx
sub eax, ebp
sar eax, 1
mov esi, ebp
call fcn.0060b3d0
mov byte [esp + 0x16], 1
jmp 0x613bbf
movzx ecx, word [ebp]
movzx eax, word [ebp + 2]
lea edx, [ecx - 0x26]
cmp edx, 0x56
ja 0x6139a1
movzx edx, byte [edx + 0x41be60]
jmp dword [edx*4 + 0x41be38]
cmp byte [esp + 0x10cf8], 0
jne 0x613bbf
cmp byte [esp + 0x17], 0
je 0x613a0f
cmp byte [esp + 0x10cfc], 0
jne 0x613a0f
lea edi, [esp + 0xe0]
call fcn.00614d10
mov byte [esp + 0x10cf8], al
test al, al
jne 0x613bbf
call fcn.00614d50
mov byte [esp + 0x10cfc], al
jmp 0x613a1d
cmp byte [esp + 0x10cf8], 0
jne 0x613bbf
mov al, byte [esp + 0x10cfc]
test al, al
jne 0x613bd9
lea eax, [esp + 0xe0]
push 0x4a1224
push eax
call fcn.00681649
add esp, 8
test eax, eax
jne 0x613a5d
cmp word [ebp], ax
jne 0x613a5d
mov byte [esp + 0x10cf8], 0x69
mov byte [esp + 0x16], 1
jmp 0x613bbf
lea ecx, [esp + 0xe0]
push 0x4a1230
push ecx
call fcn.00681649
add esp, 8
test eax, eax
jne 0x613a8e
cmp word [ebp], ax
jne 0x613a8e
mov byte [esp + 0x10cf8], 0x6f
mov byte [esp + 0x16], 1
jmp 0x613bbf
lea edx, [esp + 0xe0]
push 0x4a123c
push edx
call fcn.00681649
add esp, 8
test eax, eax
jne 0x613abf
cmp word [ebp], ax
jne 0x613abf
mov byte [esp + 0x10cf8], 0x70
mov byte [esp + 0x16], 1
jmp 0x613bbf
movzx eax, word [ebp]
push eax
push 0x4a11f0
call fcn.00682411
add esp, 8
test eax, eax
je 0x613b66
movzx eax, word [ebp]
cmp eax, 0x2b
je 0x613ae7
cmp eax, 0x2d
jne 0x613b3a
cmp word [ebp + 2], ax
jne 0x613b3a
cmp word [ebp + 4], 0
je 0x613afe
mov byte [esp + 0x10cf8], 3
jmp 0x613b21
mov cx, word [0x4bf3ec]
cmp eax, 0x2b
setne al
add al, 4
mov edx, 0x31
mov byte [esp + 0x10cf8], al
mov word [ebp], cx
mov word [ebp + 2], dx
cmp byte [esp + 0x10cf8], 0
mov esi, dword [esp + 0x10cf4]
mov ebp, esi
jne 0x613bbf
jmp 0x613b6d
cmp eax, 0x3f
je 0x613b5d
push 0x3f
push ebp
call fcn.00682411
add esp, 8
test eax, eax
je 0x613b66
push 0x3a
push eax
call fcn.00682411
add esp, 8
test eax, eax
je 0x613b66
mov ebp, dword [esp + 0x10cf4]
jmp 0x613bb7
mov esi, dword [esp + 0x10cf4]
movzx eax, word [ebp]
cmp eax, 0x28
je 0x613bb5
cmp eax, 0x5b
je 0x613bb5
cmp word [esi], 0x28
je 0x613bb5
push 0x4a04ec
push esi
call fcn.00682438
add esp, 8
test eax, eax
mov eax, 0x4a124c
jne 0x613b9d
mov eax, 0x4a0780
mov ecx, dword [esp + 0x18]
push esi
push eax
call fcn.00627f10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov ebp, esi
mov byte [esp + 0x10cf8], 3
movzx eax, byte [esp + 0x10cf8]
lea ecx, [eax*8]
sub ecx, eax
lea edx, [ecx*2 + 0x4bf4e0]
jmp 0x613bec
movzx eax, al
lea ecx, [eax*8]
sub ecx, eax
lea edx, [ecx*2 + 0x4c0118]
push 0x8002
lea eax, [esp + 0xce4]
push 0
push eax
mov dword [esp + 0x38], edx
call fcn.0068a230
mov edx, dword [esp + 0x10d14]
add esp, 0xc
test edx, edx
je 0x613cea
mov ecx, dword [esp + 0x10d0c]
mov eax, ebp
sub eax, dword [esp + 0x20]
sar eax, 1
sub ecx, eax
test ecx, ecx
jle 0x613c42
add ecx, ecx
push ecx
lea edx, [edx + eax*2]
push edx
lea eax, [esp + 0xce8]
push eax
call fcn.006896e0
add esp, 0xc
mov al, byte [esp + 0x10cf8]
mov dword [esp + 0x1c], 0
cmp al, 0x22
jne 0x613ec0
xor edi, edi
mov ebx, 1
mov dword [esp + 0x24], ebx
cmp word [ebp], di
je 0x613fa5
mov edi, edi
cmp ebx, 1
jle 0x613c76
inc edi
movzx eax, word [ebp + edi*2]
cmp eax, 0x20
je 0x613c75
cmp eax, 9
je 0x613c75
lea edx, [edi + edi]
mov cx, word [edx + ebp]
lea eax, [edx + ebp]
cmp cx, word [0x4bf3f0]
jne 0x613db1
cmp word [esp + edx + 0xce0], 0
jne 0x613db1
movzx ecx, word [eax + 2]
cmp ecx, 0x20
je 0x613cbd
cmp ecx, 9
jne 0x613db1
cmp ebx, 3
jge 0x613fa5
movzx ecx, word [0x4bf3ec]
lea edx, [esp + 0xce0]
push edx
push ecx
lea eax, [edi + 2]
mov ecx, ebp
call fcn.0066a6c0
add esp, 8
mov esi, eax
jmp 0x613e2d
xor esi, esi
cmp word [ebp + esi*2], 0
mov ax, word [0x4bf3f4]
je 0x613d10
lea ebx, [ebx]
cmp word [ebp + esi*2], ax
je 0x613d10
inc esi
cmp word [ebp + esi*2], 0
jne 0x613d00
cmp word [ebp + esi*2], 0
lea edi, [ebp + esi*2]
je 0x613c42
movzx eax, word [edi + 2]
lea ecx, [edi + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja 0x613d78
movzx edx, byte [eax + 0x41bf6c]
jmp dword [edx*4 + 0x41bf4c]
mov eax, ecx
lea ebx, [eax + 2]
lea ecx, [ecx]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x613d80
sub eax, ebx
sar eax, 1
lea edx, [eax + eax + 2]
push edx
push ecx
push edi
call fcn.006896e0
mov eax, 1
add esp, 0xc
mov word [esp + esi*2 + 0xce0], ax
inc esi
jmp 0x613cec
cmp word [eax], 0
mov esi, edi
je 0x613de4
mov bx, word [0x4bf3ec]
mov ecx, eax
cmp word [ecx], bx
jne 0x613dd2
cmp word [esp + edx + 0xce0], 0
je 0x613de0
inc esi
lea edx, [esi + esi]
cmp word [edx + ebp], 0
lea ecx, [edx + ebp]
jne 0x613dc2
mov ebx, dword [esp + 0x24]
cmp ebx, 1
jne 0x613e28
cmp word [ebp + esi*2], 0
je 0x613fa5
xor edx, edx
push edx
push edx
push ebx
push edx
mov word [ebp + esi*2], dx
call fcn.00668400
add esp, 0x10
test eax, eax
jne 0x613e10
mov dword [esp + 0x1c], ebx
cmp dword [esp + 0x1c], 0
mov ax, word [0x4bf3ec]
mov word [ebp + esi*2], ax
jne 0x613fa5
jmp 0x613e2d
cmp ebx, 4
je 0x613e45
inc ebx
cmp word [ebp + esi*2], 0
mov edi, esi
mov dword [esp + 0x24], ebx
jne 0x613c70
jmp 0x613fa5
push 0
push 1
lea ebx, [ebp + edi*2]
push 1
push 0
mov eax, ebx
call fcn.00668400
add esp, 0x10
test eax, eax
jne 0x613fa5
cmp word [ebp + esi*2], ax
jne 0x613eb3
mov cx, word [ebx]
cmp cx, word [0x4bf3f0]
jne 0x613eb3
cmp word [esp + edi*2 + 0xce0], ax
jne 0x613eb3
movzx edx, word [0x4bf3f0]
push edx
add ebx, 2
push ebx
call fcn.00682411
add esp, 8
test eax, eax
je 0x613eb3
push 0
push 1
push 1
push 0
add eax, 2
call fcn.00668400
add esp, 0x10
test eax, eax
jne 0x613fa5
mov dword [esp + 0x1c], 3
jmp 0x613fa5
cmp al, 0x6a
jne 0x613fa5
cmp word [ebp], 0
mov esi, ebp
je 0x613f19
movzx eax, word [esi]
cmp eax, 0x20
je 0x613ede
cmp eax, 9
jne 0x613f10
movzx eax, word [esi + 2]
push eax
call fcn.00683280
add esp, 4
cmp eax, 0x69
jne 0x613f10
movzx ecx, word [esi + 4]
push ecx
call fcn.00683280
add esp, 4
cmp eax, 0x6e
jne 0x613f10
movzx eax, word [esi + 6]
cmp eax, 0x20
je 0x613f19
cmp eax, 9
je 0x613f19
add esi, 2
cmp word [esi], 0
jne 0x613ed1
cmp word [esi], 0
mov dx, word [0x4bf3ec]
jne 0x613f49
mov edx, dword [esp + 0x10cf4]
mov ecx, dword [esp + 0x18]
push edx
push 0x4a1270
call fcn.00627f10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov eax, esi
sub eax, ebp
sar eax, 1
mov ecx, 1
test eax, eax
jle 0x613f65
cmp word [ebp + eax*2], dx
jne 0x613f60
inc ecx
dec eax
test eax, eax
jg 0x613f58
mov word [esi + 2], dx
cmp ecx, 1
jle 0x613fa1
cmp ecx, 2
jle 0x613f96
mov eax, dword [esp + 0x10cf4]
mov ecx, dword [esp + 0x18]
push eax
push 0x4a12b0
call fcn.00627f10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov ecx, 0x20
mov word [esi + 4], cx
jmp 0x613fa5
mov word [esi + 4], dx
mov eax, dword [esp + 0x1c]
xor ecx, ecx
mov byte [esp + 0x20], 0
mov byte [esp + 0x38], 0
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], ecx
cmp eax, ecx
je 0x613fc7
mov dword [esp + 0x24], eax
jmp 0x613ff0
mov edx, dword [esp + 0x18]
cmp byte [edx + 0xa9f], cl
je 0x613fe4
mov eax, dword [esp + 0x2c]
movsx eax, byte [eax + 6]
and eax, 0x7f
mov dword [esp + 0x24], eax
jmp 0x613ff0
mov ecx, dword [esp + 0x2c]
movsx edx, byte [ecx + 5]
mov dword [esp + 0x24], edx
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x1c], esi
cmp word [ebp], bx
je 0x6141dc
mov esi, dword [esp + 0x1c]
cmp esi, dword [esp + 0x24]
jge 0x6141dc
cmp esi, 2
jne 0x614077
mov al, byte [esp + 0x10cf8]
mov edi, dword [esp + 0x18]
sub al, 0x19
cmp al, 3
ja 0x61406c
push 0
lea eax, [ebp + ebx*2]
push eax
lea ecx, [esp + 0x2e8]
push ecx
push edi
mov dword [esp + 0x44], eax
call fcn.00614bf0
mov dword [esp + 0x30], eax
test eax, eax
je 0x61406c
lea edi, [esp + 0x2e0]
call fcn.00614d10
mov byte [esp + 0x20], al
test al, al
jne 0x6141dc
call fcn.00614d50
mov edi, dword [esp + 0x18]
mov byte [esp + 0x38], al
cmp byte [esp + 0x38], 0
jne 0x6141e0
mov ecx, dword [esp + 0x24]
dec ecx
lea edi, [ebp + ebx*2]
lea eax, [esp + ebx*2 + 0xce0]
mov dword [esp + esi*4 + 0x40], edi
mov dword [esp + esi*4 + 0x90], eax
cmp esi, ecx
je 0x6141d7
mov dx, word [edi]
cmp dx, word [0x4bf3f0]
jne 0x6140c2
cmp word [eax], 0
jne 0x6140c2
movzx eax, word [edi + 2]
cmp eax, 0x20
je 0x6141a1
cmp eax, 9
je 0x6141a1
cmp byte [esp + 0x10cf8], 0x2b
jne 0x6140f6
cmp esi, 2
je 0x6140d6
cmp esi, 3
jne 0x6140f6
mov esi, dword [esp + 0x44]
call fcn.0060c790
cmp eax, 5
ja 0x6141a1
movzx eax, byte [eax + 0x41bf8c]
jmp dword [eax*4 + 0x41bf84]
mov ecx, dword [esp + 0x2c]
add ecx, 7
je 0x614123
mov edx, dword [esp + 0x1c]
mov al, byte [ecx]
inc edx
test al, al
je 0x614123
lea ebx, [ebx]
movzx eax, al
cmp eax, edx
je 0x61419c
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x614110
movzx eax, word [edi]
test ax, ax
je 0x61414d
mov cx, word [0x4bf3ec]
cmp ax, cx
jne 0x614142
cmp word [esp + ebx*2 + 0xce0], 0
je 0x61414d
movzx eax, word [ebp + ebx*2 + 2]
inc ebx
test ax, ax
jne 0x614132
cmp word [ebp + ebx*2], 0
je 0x6141c1
xor eax, eax
mov word [ebp + ebx*2], ax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + eax*4 + 0x90]
mov edi, dword [esp + eax*4 + 0x40]
push ecx
call fcn.0060b430
inc ebx
lea edx, [esp + 0xce4]
add esp, 4
lea eax, [ebp + ebx*2]
sub edx, ebp
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x61418f
cmp ecx, 9
jne 0x6141c1
cmp word [edx + eax], 0
jne 0x6141c1
inc ebx
add eax, 2
jmp 0x614182
cmp byte [ecx], 0
je 0x614123
movzx edx, word [0x4bf3ec]
lea ecx, [esp + 0xce0]
push ecx
push edx
mov eax, ebx
mov ecx, ebp
call fcn.0066a6c0
add esp, 8
mov ebx, eax
jmp 0x61414d
inc dword [esp + 0x1c]
cmp word [ebp + ebx*2], 0
jne 0x614002
mov esi, dword [esp + 0x1c]
jmp 0x6141dc
inc esi
mov dword [esp + 0x1c], esi
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
mov al, byte [edx + 4]
movsx ecx, al
cmp esi, ecx
jge 0x614244
cmp al, 1
mov eax, 0x4a1320
jg 0x6141fc
mov eax, 0x4a69fc
push eax
mov eax, dword [esp + 0x30]
push ecx
mov ecx, dword [eax]
push ecx
push 0x4a1328
mov esi, 0x400
lea edi, [esp + 0x4f0]
call fcn.00668580
add esp, 0x10
mov edx, dword [esp + 0x10cf4]
push edx
lea eax, [esp + 0x4e4]
push eax
mov ecx, dword [esp + 0x20]
call fcn.00627f10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
xor eax, eax
test ecx, ecx
jle 0x61425f
lea ebx, [ebx]
mov edx, dword [esp + eax*4 + 0x40]
inc eax
cmp word [edx], 0
je 0x614282
cmp eax, ecx
jl 0x614250
mov cl, byte [esp + 0x10cfc]
test cl, cl
je 0x61463b
movzx eax, cl
dec eax
cmp eax, 0x13
ja 0x61463b
jmp dword [eax*4 + 0x41bf94]
push eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
push ecx
push 0x4a1378
mov esi, 0x400
lea edi, [esp + 0x4ec]
call fcn.00668580
add esp, 0xc
jmp 0x61421e
test esi, esi
je 0x614728
cmp byte [esp + 0x20], 0
jne 0x614728
cmp byte [esp + 0x38], 0
jne 0x614728
mov al, byte [esp + 0x10cf8]
lea edx, [eax - 0x13]
cmp dl, 0xe
ja 0x614728
cmp al, 0x18
ja 0x61467c
sub cl, 6
cmp cl, 5
ja 0x614728
mov eax, dword [esp + esi*4 + 0x3c]
mov dword [esp + 0x24], eax
sub eax, ebp
sar eax, 1
movzx ecx, word [ebp + eax*2]
test cx, cx
je 0x614728
mov dx, word [0x4bf3ec]
lea ecx, [ecx]
cmp cx, dx
jne 0x6146b0
cmp word [esp + eax*2 + 0xce0], 0
je 0x6146bd
movzx ecx, word [ebp + eax*2 + 2]
inc eax
test cx, cx
jne 0x6146a0
jmp 0x614728
lea ebx, [ebp + eax*2]
movzx ecx, word [ebp + eax*2 + 2]
inc eax
cmp ecx, 0x20
je 0x6146c1
cmp ecx, 9
je 0x6146c1
lea eax, [ebp + eax*2]
push 0
push eax
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x2e8]
push eax
push edi
call fcn.00614bf0
mov dword [esp + 0x30], eax
test eax, eax
je 0x614728
lea edi, [esp + 0x2e0]
call fcn.00614d10
mov byte [esp + 0x20], al
test al, al
jne 0x614713
call fcn.00614d50
mov byte [esp + 0x38], al
test al, al
je 0x614728
mov esi, dword [esp + 0x24]
xor ecx, ecx
or eax, 0xffffffff
mov word [ebx], cx
call fcn.0060b3d0
mov esi, dword [esp + 0x1c]
mov al, byte [esp + 0x10cf8]
cmp al, 0x69
je 0x614737
cmp al, 0x6b
jne 0x614746
cmp esi, 1
jne 0x614746
mov edx, dword [esp + 0x40]
cmp word [edx], 0
jne 0x614752
cmp al, 0x6a
je 0x61474e
cmp al, 0x70
jne 0x6147b8
test esi, esi
je 0x6147b8
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + eax*4 + 0x3c]
mov eax, esi
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x614760
sub eax, edx
sar eax, 1
cmp word [esi + eax*2 - 2], 0x7b
jne 0x6147b8
xor ecx, ecx
mov word [esi + eax*2 - 2], cx
or eax, 0xffffffff
mov byte [esp + 0x16], 1
call fcn.0060b3d0
test eax, eax
jne 0x6147b8
mov al, byte [esp + 0x10cf8]
cmp al, 0x69
je 0x6147b0
cmp al, 0x70
je 0x6147b0
mov edx, dword [esp + 0x10cf4]
push edx
push 0x4a0de0
jmp 0x61422e
mov dword [esp + 0x1c], 0
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
lea eax, [esp + 0x90]
push eax
mov eax, dword [esp + 0x10cfc]
push ecx
lea edx, [esp + 0x48]
push edx
push eax
push edi
call fcn.00614e10
test eax, eax
je 0x613030
cmp byte [esp + 0x16], 0
je 0x614801
push 0
push 0
push 0
push 0x72
push edi
call fcn.00614e10
test eax, eax
je 0x613030
cmp byte [esp + 0x20], 0
jne 0x614813
cmp byte [esp + 0x38], 0
je 0x6130f7
mov esi, dword [esp + 0x30]
mov eax, esi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x614820
sub eax, edx
mov ecx, esi
sub ecx, ebp
sar eax, 1
push eax
sar ecx, 1
lea edx, [esp + ecx*2 + 0xce4]
mov ecx, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0x28]
push esi
lea eax, [esp + 0x2ec]
push eax
mov eax, dword [esp + 0x44]
push ecx
push edx
push eax
mov ecx, edi
call fcn.00612910
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c