Function at 0x43ec60
Capabilities:
Parse credit card information

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0xacc
push ebx
mov bl, byte [ebp + 0x74]
push esi
push edi
mov edi, dword [ebp + 0x70]
mov esi, ecx
mov ecx, edi
mov dword [ebp + 0x58], esi
mov dword [ebp + 0x64], ebx
mov byte [ebp + 0x62], bl
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43ec84
sub ecx, edx
sar ecx, 1
mov dword [ebp + 0x44], ecx
test bl, bl
je 0x43ed48
xor eax, eax
mov ebx, edi
mov word [ebp - 0x264], ax
mov dword [ebp + 0x5c], eax
mov byte [ebp + 0x63], al
mov eax, dword [ebp + 0x64]
cmp al, 0xa
jne 0x43ed08
mov edi, ebx
test ebx, ebx
je 0x43ed08
movzx eax, word [ebx]
test ax, ax
je 0x43ed05
mov esi, eax
nop word [eax + eax]
mov ecx, 0x4d7b98
mov edx, 0x20
nop word [eax + eax]
cmp si, dx
je 0x43f846
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x43ece0
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x43ecd0
mov eax, dword [ebp + 0x64]
mov cl, byte [ebp + 0x63]
movzx edi, al
mov dl, cl
mov dword [ebp + 0x50], edx
mov byte [ebp + 0x48], dl
mov edx, dword [ebp + 0x44]
lea eax, [edi - 9]
mov byte [ebp + 0x62], cl
mov dword [ebp + 0x54], 0
cmp eax, 0x12
ja case.0x43ed41.13
movzx eax, byte [eax + 0x440108]
mov dl, cl
mov dword [ebp + 0x50], edx
mov byte [ebp + 0x48], dl
mov edx, dword [ebp + 0x44]
jmp dword [eax*4 + 0x4400f4]
push 6
push 0x4d21ec
push edi
call fcn.0049f522
add esp, 0xc
test eax, eax
jne 0x43ed61
lea ebx, [eax + 0x41]
jmp 0x43ed9a
push 5
push 0x4d21e0
push edi
call fcn.0049f522
add esp, 0xc
test eax, eax
jne 0x43ed7d
lea ebx, [eax + 0x42]
lea eax, [ebx - 0x38]
jmp 0x43ed9f
push 6
push 0x4d21bc
push edi
call fcn.0049f522
add esp, 0xc
test eax, eax
jne 0x43f204
mov ebx, 0x62
mov eax, 0xc
add edi, eax
mov dword [ebp + 0x50], ebx
movzx eax, word [edi]
test ax, ax
je 0x43f1af
cmp eax, 0x20
je 0x43edc0
cmp eax, 9
jne 0x43f201
nop
cmp ax, 0x20
je 0x43edcc
cmp ax, 9
jne 0x43edd5
movzx eax, word [edi + 2]
add edi, 2
jmp 0x43edc0
test ax, ax
je 0x43f1af
cmp ax, 0x7f
ja 0x43edfe
movzx eax, ax
push eax
call fcn.004a36d0
add esp, 4
test eax, eax
jne 0x43edfe
cmp word [edi], 0x5f
jne 0x43f201
mov eax, dword [0x4e4788]
cmp dword [eax + 0x18], 0
jne 0x43ee12
test bl, 2
jne 0x43f1e2
cmp word [edi], 0
mov eax, dword [esi + 0x48]
mov dword [ebp + 0x5c], eax
mov byte [ebp + 0x73], 0
je 0x43f1cd
mov eax, ebx
and eax, 1
mov dword [ebp + 0x44], eax
nop
lea esi, [edi + 2]
movzx eax, word [esi]
cmp eax, 0x7f
ja 0x43ee4e
push eax
call fcn.004a36d0
add esp, 4
test eax, eax
jne 0x43ee4e
cmp word [esi], 0x5f
jne 0x43ee53
add esi, 2
jmp 0x43ee33
mov ebx, esi
xor edx, edx
sub ebx, edi
mov dword [ebp + 0x74], edx
sar ebx, 1
cmp dword [ebp + 0x44], edx
je 0x43ee7d
push dword [ebp + 0x50]
mov ecx, dword [ebp + 0x58]
push ebx
push edi
call fcn.00443db0
mov edx, eax
mov dword [ebp + 0x74], edx
test edx, edx
je 0x43ef8f
mov ecx, dword [0x4e4788]
cmp dword [ecx + 0x18], 0
je 0x43ef60
lea eax, [ebp + 0x78]
mov dword [ebp + 0x78], 1
push eax
lea eax, [ebp + 0x54]
test edx, edx
push eax
lea eax, [ebp + 0x40]
mov ecx, 0x22
push eax
mov eax, dword [ebp + 0x50]
cmovne eax, ecx
mov ecx, dword [ebp + 0x58]
push eax
push ebx
push edi
call fcn.00443e50
mov ecx, eax
test ecx, ecx
jne 0x43ef4d
cmp dword [ebp + 0x78], eax
je 0x43ef8f
cmp dword [ebp + 0x74], eax
je 0x43ef74
mov ebx, dword [ebp + 0x40]
mov edx, dword [ebp + 0x54]
mov dword [ebp + 0x48], edx
mov eax, dword [ebx + 8]
cmp dword [ebx + 4], eax
jne 0x43ef16
test eax, eax
je 0x43eeed
add eax, eax
jmp 0x43eef2
mov eax, 0x20
mov dword [ebp + 0x3c], eax
shl eax, 2
push eax
push dword [ebx]
call fcn.0049f4c8
add esp, 8
test eax, eax
je 0x43f123
mov edx, dword [ebp + 0x48]
mov dword [ebx], eax
mov eax, dword [ebp + 0x3c]
mov dword [ebx + 8], eax
mov ecx, dword [ebx + 4]
lea eax, [edx*4]
mov dword [ebp + 0x3c], eax
cmp edx, ecx
je 0x43ef3f
mov eax, dword [ebx]
sub ecx, edx
shl ecx, 2
push ecx
lea eax, [eax + edx*4]
push eax
add eax, 4
push eax
call fcn.0049cfe0
add esp, 0xc
mov eax, dword [ebx]
mov edx, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x74]
mov dword [edx + eax], ecx
inc dword [ebx + 4]
mov ebx, dword [ebp + 0x58]
movzx eax, byte [ecx + 0x16]
mov edx, dword [ebp + 0x50]
cmp eax, edx
jne 0x43f145
nop
movzx eax, word [esi]
mov ecx, eax
cmp eax, 0x20
je 0x43ef6f
cmp eax, 9
jne 0x43efa1
add esi, 2
jmp 0x43ef60
push dword [ebp + 0x50]
push dword [ebp + 0x54]
push dword [ebp + 0x40]
push ebx
mov ebx, dword [ebp + 0x58]
mov ecx, ebx
push edi
call fcn.00444580
mov ecx, eax
test ecx, ecx
jne 0x43ef50
xor eax, eax
lea esp, [ebp - 0xa70]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x68]
pop ebp
ret 0x10
test cx, cx
je 0x43f0d5
cmp ecx, 0x2c
je 0x43f10e
cmp eax, 0x3a
jne 0x43efc4
cmp word [esi + 2], 0x3d
jne 0x43efc4
add esi, 4
jmp 0x43f028
push eax
push 0x4d7a44
call fcn.0049cf2f
add esp, 8
test eax, eax
je 0x43efdd
cmp word [esi + 2], 0x3d
je 0x43f028
movzx eax, word [esi]
push eax
push 0x4d7a58
call fcn.0049cf2f
add esp, 8
test eax, eax
je 0x43f191
movzx ecx, word [esi]
cmp word [esi + 2], cx
jne 0x43f191
movzx eax, word [esi + 4]
cmp eax, 0x3d
je 0x43f028
cmp ecx, 0x3e
jne 0x43f191
cmp eax, ecx
jne 0x43f191
cmp word [esi + 6], 0x3d
jne 0x43f191
push 0
push 0
mov edx, 0x2c
mov ecx, esi
call fcn.00483e30
add esp, 8
mov ecx, edi
lea esi, [esi + eax*2]
lea edx, [esi - 2]
call fcn.004138c0
mov ebx, eax
movzx eax, word [ebx + 2]
mov dword [ebp + 0x74], eax
xor eax, eax
mov word [ebx + 2], ax
cmp dword [ebp + 0x5c], eax
je 0x43f07b
cmp byte [ebp + 0x73], al
jne 0x43f07b
mov ecx, dword [ebp + 0x58]
push eax
push eax
push eax
push eax
push 3
call fcn.004401c0
test eax, eax
je 0x43ef8f
mov byte [ebp + 0x73], 1
cmp dword [ebp + 0x50], 0x62
mov ecx, dword [ebp + 0x58]
setne al
dec al
push 0
and al, 5
push 0
movzx eax, al
push eax
push edi
call fcn.0043ec60
test eax, eax
je 0x43ef8f
mov eax, dword [ebp + 0x74]
mov word [ebx + 2], ax
movzx eax, word [esi]
mov ecx, eax
cmp eax, 0x2c
jne 0x43f0c5
lea edi, [esi + 2]
movzx eax, word [edi]
cmp eax, 0x20
je 0x43f0c0
cmp eax, 9
jne 0x43f0c9
add edi, 2
jmp 0x43f0b3
mov edi, esi
mov eax, ecx
movzx eax, ax
test ax, ax
jne 0x43ee30
cmp byte [ebp + 0x73], 0
je 0x43f1cd
mov ecx, dword [ebp + 0x58]
push 0
push 0
push 0
push 0
push 4
call fcn.004401c0
test eax, eax
je 0x43ef8f
mov eax, 1
lea esp, [ebp - 0xa70]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x68]
pop ebp
ret 0x10
lea edi, [esi + 2]
movzx eax, word [edi]
cmp eax, 0x20
je 0x43f11e
cmp eax, 9
jne 0x43f0cc
add edi, 2
jmp 0x43f111
mov ecx, dword [ebp + 0x58]
push 0x4cee98
push 0x4d27e0
call fcn.0040d780
lea esp, [ebp - 0xa70]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x68]
pop ebp
ret 0x10
test dl, 2
je 0x43f173
test dl, 0x20
mov eax, 0x4d21bc
mov edx, 0x4d21e0
push ecx
cmove eax, edx
mov ecx, ebx
push eax
call fcn.0040d850
lea esp, [ebp - 0xa70]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x68]
pop ebp
ret 0x10
push ecx
mov eax, 0x4d21ec
mov ecx, ebx
push eax
call fcn.0040d850
lea esp, [ebp - 0xa70]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x68]
pop ebp
ret 0x10
mov ecx, dword [ebp + 0x58]
push edi
push 0x4d7a60
call fcn.0040d780
lea esp, [ebp - 0xa70]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x68]
pop ebp
ret 0x10
cmp ebx, 0x42
je 0x43f1e2
cmp byte [esi + 0x54], 0
jne 0x43f1c2
mov eax, dword [esi + 0x50]
cmp eax, dword [esi + 4]
jne 0x43f1e2
mov eax, dword [0x4e4788]
mov eax, dword [eax + 0x18]
mov byte [eax + 0x76], bl
mov eax, 1
lea esp, [ebp - 0xa70]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x68]
pop ebp
ret 0x10
push dword [ebp + 0x70]
mov ecx, esi
push 0x4d7a14
call fcn.0040d780
lea esp, [ebp - 0xa70]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x68]
pop ebp
ret 0x10
mov edi, dword [ebp + 0x70]
movzx eax, word [edi]
cmp eax, 0x7f
ja 0x43f21f
push eax
call fcn.004a36d0
add esp, 4
test eax, eax
jne 0x43f21f
cmp word [edi], 0x5f
jne 0x43f224
add edi, 2
jmp 0x43f204
mov ecx, dword [ebp + 0x70]
mov esi, edi
sub esi, ecx
mov dword [ebp + 0x5c], edi
sar esi, 1
je 0x43f2a4
cmp esi, 0xfd
ja 0x43f2a4
push esi
push ecx
lea eax, [ebp - 0x264]
push eax
call fcn.004aa9a4
add esp, 0xc
mov ebx, edi
xor eax, eax
mov word [ebp + esi*2 - 0x264], ax
movzx eax, word [ebx]
cmp eax, 0x20
je 0x43f264
cmp eax, 9
jne 0x43f269
add ebx, 2
jmp 0x43f257
movzx ecx, word [edi]
test cx, cx
je 0x43f280
cmp ecx, 0x20
je 0x43f280
cmp ecx, 9
je 0x43f280
cmp ecx, 0x28
jne 0x43f297
cmp eax, 0x3d
je 0x43f297
cmp eax, 0x3a
je 0x43f297
mov ecx, dword [ebp + 0x70]
mov byte [ebp + 0x4f], 1
mov byte [ebp + 0x63], 0
jmp 0x43f2b8
mov ecx, dword [ebp + 0x70]
mov byte [ebp + 0x4f], 0
mov byte [ebp + 0x63], 0
jmp 0x43f2b8
xor eax, eax
mov ebx, ecx
mov word [ebp - 0x264], ax
mov dword [ebp + 0x5c], eax
mov byte [ebp + 0x4f], al
mov byte [ebp + 0x63], al
movzx edi, word [ecx]
cmp edi, 0x22
je 0x43f2c5
cmp edi, 0x27
jne 0x43f32a
mov eax, dword [ebp + 0x78]
lea ebx, [ecx + 2]
add eax, 2
nop
movzx ecx, word [ebx]
cmp cx, di
jne 0x43f305
cmp dword [ebp + 0x78], 0
je 0x43f2e4
cmp word [eax], 0
jne 0x43f322
test cx, cx
je 0x43f32a
movzx eax, word [ebx + 2]
add ebx, 2
cmp eax, 0x20
je 0x43f2e9
cmp eax, 9
je 0x43f2e9
mov edi, dword [ebp + 0x70]
cmp eax, 0x2e
cmovne ebx, edi
jmp 0x43f32d
test cx, cx
je 0x43f32a
cmp ecx, 0x60
jne 0x43f322
cmp dword [ebp + 0x78], 0
jne 0x43f322
cmp word [ebx + 2], 0
je 0x43f322
add eax, 2
add ebx, 2
add eax, 2
add ebx, 2
jmp 0x43f2d0
mov edi, dword [ebp + 0x70]
movzx edx, word [ebx]
lea esi, [ebx + 2]
movzx ecx, word [esi]
lea eax, [edx - 0x26]
cmp eax, 0x56
ja case.0x43f349.39
movzx eax, byte [eax + 0x44013c]
jmp dword [eax*4 + 0x44011c]
cmp ecx, 0x3d
jne case.0x43f349.39
cmp word [ebx + 4], 0
sete al
inc al
mov dword [ebp + 0x64], eax
jmp 0x43f3a1
mov edi, dword [ebp + 0x5c]
test edi, edi
jne 0x43f374
cmp cx, dx
je 0x43f37d
cmp ecx, 0x3d
jne 0x43f573
mov ebx, dword [ebp + 0x70]
mov al, 2
mov dword [ebp + 0x64], eax
mov byte [ebp + 0x74], al
jmp 0x43ed08
movzx eax, byte [ebp + 0x62]
cmp ecx, 0x3d
mov edx, 2
cmovne edx, eax
mov dword [ebp + 0x64], edx
mov eax, edx
mov byte [ebp + 0x74], al
test al, al
je 0x43f5b5
cmp al, 1
jne 0x43f3f0
push 0
push 2
mov edx, 0x2c
mov ecx, ebx
call fcn.00483e30
add esp, 8
cmp word [ebx + eax*2], 0
je 0x43f3d9
mov al, 2
mov ebx, edi
mov dword [ebp + 0x64], eax
mov byte [ebp + 0x74], al
jmp 0x43ed08
mov eax, 0x2c
mov word [ebx], ax
mov eax, 0x20
mov word [esi], ax
mov ebx, edi
jmp 0x43ed05
mov ebx, edi
mov dword [ebp + 0x64], eax
mov byte [ebp + 0x74], al
jmp 0x43ecb2
cmp ecx, 0x3d
je case.0x43f349.63
cmp ecx, 0x2f
jne case.0x43f349.39
cmp word [ebx + 4], 0x3d
jmp 0x43f43a
cmp cx, dx
jne case.0x43f349.39
movzx eax, word [ebx + 4]
cmp eax, 0x3d
je case.0x43f349.63
cmp ecx, 0x3e
jne case.0x43f349.39
cmp eax, ecx
jne case.0x43f349.39
cmp word [ebx + 6], 0x3d
jne case.0x43f349.39
mov al, 2
mov ebx, edi
mov dword [ebp + 0x64], eax
mov byte [ebp + 0x74], al
jmp 0x43ed08
cmp ecx, 0x3d
jne 0x43f463
mov al, 2
mov ebx, edi
mov dword [ebp + 0x64], eax
mov byte [ebp + 0x74], al
jmp 0x43ed08
mov edi, esi
movzx eax, word [edi]
cmp eax, 0x7f
ja 0x43f482
push eax
call fcn.004a36d0
add esp, 4
test eax, eax
jne 0x43f482
movzx eax, word [edi]
cmp eax, 0x5f
jne 0x43f487
add edi, 2
jmp 0x43f465
cmp eax, 0x28
je 0x43f37d
cmp eax, 0x25
je 0x43f37d
cmp edi, esi
je case.0x43f349.39
cmp eax, 0x20
je 0x43f4af
mov byte [ebp + 0x62], 0
cmp eax, 9
jne 0x43f4b3
mov byte [ebp + 0x62], 1
mov esi, edi
cmp ax, 0x20
je 0x43f4c1
cmp ax, 9
jne 0x43f4ca
movzx eax, word [esi + 2]
add esi, 2
jmp 0x43f4b5
movzx ecx, ax
test ax, ax
je 0x43f552
cmp ax, 0x5b
je 0x43f37d
cmp word [esi + 2], 0x3d
jne 0x43f4fd
push eax
push 0x4d7a9c
call fcn.0049cf2f
add esp, 8
test eax, eax
jne 0x43f37d
movzx eax, word [esi]
mov ecx, eax
cmp word [esi + 2], ax
jne 0x43f552
push eax
push 0x4d7a58
call fcn.0049cf2f
add esp, 8
test eax, eax
je 0x43f525
cmp word [esi + 4], 0x3d
je 0x43f37d
movzx eax, word [esi]
cmp eax, 0x2b
je 0x43f37d
cmp eax, 0x2d
je 0x43f37d
mov ecx, eax
cmp eax, 0x3e
jne 0x43f552
cmp word [esi + 4], ax
jne 0x43f565
cmp word [esi + 6], 0x3d
je 0x43f37d
cmp cx, 0x2e
jne 0x43f560
add esi, 2
jmp 0x43f463
test cx, cx
je 0x43f56b
cmp byte [ebp + 0x62], 0
je case.0x43f349.39
mov dword [ebp + 0x5c], edi
jmp 0x43f580
mov edi, dword [ebp + 0x5c]
mov eax, dword [ebp + 0x64]
cmp byte [ebp + 0x4f], 0
je 0x43f625
mov eax, 8
mov esi, 0x4e47d0
mov dword [ebp + 0x54], eax
nop dword [eax]
push dword [esi]
lea eax, [ebp - 0x264]
push eax
call fcn.0049f3a1
add esp, 8
test eax, eax
je 0x43f5ba
inc dword [ebp + 0x54]
add esi, 6
cmp esi, 0x4e4842
jle 0x43f590
jmp 0x43f5cb
mov edi, dword [ebp + 0x5c]
jmp 0x43f576
mov eax, dword [ebp + 0x54]
mov dword [ebp + 0x64], eax
mov byte [ebp + 0x74], al
test al, al
jne 0x43ecb2
movzx eax, word [edi]
cmp eax, 0x28
je 0x43f62d
mov cx, word [ebp - 0x264]
cmp cx, 0x30
jb 0x43f5e6
cmp cx, 0x39
jbe 0x43f62d
mov edx, dword [ebp + 0x44]
test ax, ax
mov esi, dword [ebp + 0x70]
mov eax, 0x28
je 0x43f5fb
mov word [edi], ax
jmp 0x43f600
mov word [esi + edx*2], ax
inc edx
mov eax, 0x29
mov ebx, esi
mov word [esi + edx*2], ax
inc edx
xor eax, eax
mov dword [ebp + 0x44], edx
mov word [esi + edx*2], ax
mov eax, 2
mov dword [ebp + 0x64], eax
mov byte [ebp + 0x74], al
jmp 0x43ed08
test al, al
jne 0x43ecb2
movzx eax, word [ebx]
cmp eax, 0x7b
jne 0x43f6e4
mov ecx, 8
mov esi, 0x4e47d0
mov dword [ebp + 0x54], ecx
push dword [esi]
lea eax, [ebp - 0x264]
push eax
call fcn.0049f3a1
add esp, 8
test eax, eax
je 0x43f66d
inc dword [ebp + 0x54]
add esi, 6
cmp esi, 0x4e4842
jle 0x43f646
xor cl, cl
jmp 0x43f670
mov ecx, dword [ebp + 0x54]
movzx eax, cl
add eax, 0xfffffff7
cmp eax, 0x11
ja case.0x43f682.11
movzx eax, byte [eax + 0x4401a0]
jmp dword [eax*4 + 0x440194]
cmp word [ebx + 2], 0
jne case.0x43f682.11
mov al, cl
mov dword [ebp + 0x64], eax
mov byte [ebp + 0x74], al
test cl, cl
jne 0x43ed08
movzx eax, word [ebx]
push eax
push 0x4d6f70
call fcn.0049cf2f
add esp, 8
test eax, eax
je 0x43f77f
movzx eax, word [ebx]
cmp eax, 0x2b
je 0x43f6ca
cmp eax, 0x2d
jne 0x43f751
cmp word [ebx + 2], ax
jne 0x43f751
mov ebx, dword [ebp + 0x70]
mov al, 2
mov dword [ebp + 0x64], eax
mov byte [ebp + 0x74], al
jmp 0x43ed08
cmp eax, 0x3a
jne case.0x43f682.11
lea eax, [ebp - 0x264]
push 0x4d4618
push eax
call fcn.0049f3a1
add esp, 8
test eax, eax
jne case.0x43f682.11
mov esi, dword [ebp + 0x58]
mov ecx, esi
push eax
push eax
push eax
push eax
push 0x1b
call fcn.004401c0
test eax, eax
je 0x43ef8f
movzx eax, word [ebx + 2]
add ebx, 2
cmp eax, 0x20
je 0x43f719
cmp eax, 9
je 0x43f719
test ax, ax
je 0x43f1cd
push 0
push 0
push 0
push ebx
mov ecx, esi
call fcn.0043ec60
lea esp, [ebp - 0xa70]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x68]
pop ebp
ret 0x10
push 0x3f
push ebx
call fcn.0049cf2f
add esp, 8
test eax, eax
je 0x43f77f
push 0x3a
push eax
call fcn.0049cf2f
add esp, 8
test eax, eax
je 0x43f77f
mov ebx, dword [ebp + 0x70]
mov al, 2
mov dword [ebp + 0x64], eax
mov byte [ebp + 0x74], al
jmp 0x43ed08
test edi, edi
je 0x43f798
movzx eax, word [edi]
cmp eax, 0x28
je 0x43f834
cmp eax, 0x5b
je 0x43f834
movzx eax, word [ebx]
mov esi, dword [ebp + 0x70]
cmp eax, 0x25
je 0x43f837
cmp word [esi], 0x28
je 0x43f837
cmp eax, 0x3d
jne 0x43f7da
cmp word [ebx + 2], ax
je 0x43f7fd
mov ecx, dword [ebp + 0x58]
push esi
push 0x4d7ab0
call fcn.0040d780
lea esp, [ebp - 0xa70]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x68]
pop ebp
ret 0x10
cmp eax, 0x2c
jne 0x43f7fd
mov ecx, dword [ebp + 0x58]
push esi
push 0x4d7b00
call fcn.0040d780
lea esp, [ebp - 0xa70]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x68]
pop ebp
ret 0x10
push 0x4d7040
push esi
call fcn.0049d91e
add esp, 8
mov edx, 0x4d7460
test eax, eax
mov ecx, 0x4d403c
cmove ecx, edx
push esi
push ecx
mov ecx, dword [ebp + 0x58]
call fcn.0040d780
lea esp, [ebp - 0xa70]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x68]
pop ebp
ret 0x10
mov esi, dword [ebp + 0x70]
mov al, 2
mov ebx, esi
mov dword [ebp + 0x64], eax
mov byte [ebp + 0x74], al
jmp 0x43ed08
cmp edi, ebx
jbe 0x43ed05
movzx ecx, word [edi]
mov dword [ebp + 0x54], ecx
cmp ecx, 0x20
je 0x43f867
cmp ecx, 9
je 0x43f867
cmp ecx, 0x2c
jne 0x43ed05
mov edx, dword [ebp + 0x64]
mov eax, edi
movzx esi, cx
nop
mov byte [ebp + 0x62], dl
cmp si, 0x20
je 0x43f87f
cmp si, 9
jne 0x43f888
movzx esi, word [eax + 2]
add eax, 2
jmp 0x43f870
mov dword [ebp + 0x40], eax
movzx eax, cx
mov dword [ebp + 0x3c], eax
xor eax, eax
push ebx
push 0x4d7bd0
mov word [edi], ax
call fcn.0049f3a1
add esp, 8
test eax, eax
jne 0x43f8be
mov ecx, dword [ebp + 0x54]
mov al, 0xb
mov dword [ebp + 0x64], eax
mov byte [ebp + 0x74], al
movzx eax, cx
mov word [edi], ax
jmp 0x43f942
push ebx
push 0x4d7bdc
call fcn.0049f3a1
add esp, 8
test eax, eax
jne 0x43f8e3
mov ecx, dword [ebp + 0x54]
mov al, 0xc
mov dword [ebp + 0x64], eax
mov byte [ebp + 0x74], al
movzx eax, cx
mov word [edi], ax
jmp 0x43f942
push ebx
push 0x4d7be4
call fcn.0049f3a1
add esp, 8
test eax, eax
jne 0x43f908
mov ecx, dword [ebp + 0x54]
mov al, 0xd
mov dword [ebp + 0x64], eax
mov byte [ebp + 0x74], al
movzx eax, cx
mov word [edi], ax
jmp 0x43f942
push ebx
push 0x4d7bf0
call fcn.0049f3a1
add esp, 8
test eax, eax
jne 0x43f92a
mov al, 0xe
mov dword [ebp + 0x64], eax
mov byte [ebp + 0x74], al
mov eax, dword [ebp + 0x3c]
mov word [edi], ax
jmp 0x43f942
mov ecx, dword [ebp + 0x54]
movzx eax, cx
mov word [edi], ax
mov al, byte [ebp + 0x62]
mov cl, al
mov dword [ebp + 0x64], ecx
mov byte [ebp + 0x74], cl
cmp al, 0xa
je 0x43f965
mov ebx, dword [ebp + 0x40]
cmp si, 0x2c
jne 0x43ed05
movzx eax, word [ebx + 2]
add ebx, 2
cmp eax, 0x20
je 0x43f94f
cmp eax, 9
je 0x43f94f
jmp 0x43ed05
mov dword [ebp + 0x64], eax
mov byte [ebp + 0x74], al
cmp si, 0x2c
jne 0x43ed08
push dword [ebp + 0x70]
mov ecx, dword [ebp + 0x58]
push 0x4d7bfc
call fcn.0040d780
lea esp, [ebp - 0xa70]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x68]
pop ebp
ret 0x10
mov esi, ebx
jmp 0x43f99c
mov esi, dword [ebp + 0x5c]
mov al, cl
mov dword [ebp + 0x50], eax
mov byte [ebp + 0x48], al
test esi, esi
je 0x43fa42
cmp word [esi], 0x28
mov dword [ebp + 0x50], eax
mov byte [ebp + 0x48], al
jne 0x43fa42
mov eax, dword [ebp + 0x70]
lea eax, [eax + edx*2]
movzx edx, word [eax - 2]
add eax, 0xfffffffe
mov ecx, edx
cmp edx, 0x7b
jne 0x43fa07
cmp byte [ebp + 0x64], 0xf
je 0x43f9de
mov edx, dword [ebp + 0x64]
cmp dl, 0x17
jne 0x43fa07
add eax, 0xfffffffe
mov byte [ebp + 0x63], 1
cmp eax, esi
jbe 0x43fa04
nop dword [eax]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x43f9fd
cmp ecx, 9
jne 0x43fa04
sub eax, 2
cmp eax, esi
ja 0x43f9f0
movzx ecx, word [eax]
mov dl, byte [ebp + 0x62]
mov dword [ebp + 0x50], edx
mov byte [ebp + 0x48], dl
cmp cx, 0x29
jne 0x43fa42
add eax, 0xfffffffe
add ebx, 2
cmp eax, esi
jbe 0x43fa34
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x43fa2d
cmp ecx, 9
jne 0x43fa34
sub eax, 2
cmp eax, esi
ja 0x43fa20
xor ecx, ecx
mov word [eax + 2], cx
mov al, 1
mov dword [ebp + 0x50], eax
mov byte [ebp + 0x48], al
cmp byte [ebp + 0x64], 0x17
jne case.0x43ed41.13
cmp word [ebx], 0x7b
jne case.0x43ed41.13
jmp 0x43fa5b
mov esi, dword [ebp + 0x5c]
test esi, esi
je 0x43fa85
cmp word [esi], 0x28
jne 0x43fa85
push dword [ebp + 0x70]
mov ecx, dword [ebp + 0x58]
push 0x4d7c24
call fcn.0040d780
lea esp, [ebp - 0xa70]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x68]
pop ebp
ret 0x10
movzx eax, word [ebx]
mov ecx, eax
cmp eax, 0x7b
jne 0x43faa6
mov byte [ebp + 0x63], 1
movzx eax, word [ebx + 2]
add ebx, 2
cmp eax, 0x20
je 0x43fa93
cmp eax, 9
je 0x43fa93
mov ecx, eax
test cx, cx
je case.0x43ed41.13
mov dword [ebp + 0x54], ebx
sub ebx, 2
xor eax, eax
mov word [ebx], ax
jmp case.0x43ed41.13
push 0
push 0
mov edx, 0x3a
mov ecx, ebx
call fcn.00483e30
add esp, 8
cmp word [ebx + eax*2], 0
lea esi, [ebx + eax*2]
jne 0x43fafc
push dword [ebp + 0x70]
mov ecx, dword [ebp + 0x58]
push 0x4d7c40
call fcn.0040d780
lea esp, [ebp - 0xa70]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x68]
pop ebp
ret 0x10
xor eax, eax
mov word [esi], ax
cmp word [ebx], ax
je 0x43fb48
mov ecx, ebx
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43fb10
sub ecx, edx
sar ecx, 1
lea eax, [ecx - 1]
lea eax, [ebx + eax*2]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x43fb32
cmp ecx, 9
jne 0x43fb3b
cmp eax, ebx
je 0x43fb43
sub eax, 2
jmp 0x43fb25
xor ecx, ecx
mov word [eax + 2], cx
jmp 0x43fb48
xor ecx, ecx
mov word [eax], cx
movzx eax, word [esi + 2]
add esi, 2
cmp eax, 0x20
je 0x43fb48
cmp eax, 9
je 0x43fb48
mov dl, byte [ebp + 0x62]
mov dword [ebp + 0x54], esi
mov cl, dl
mov dword [ebp + 0x50], ecx
mov byte [ebp + 0x48], cl
test ax, ax
jne case.0x43ed41.13
mov al, dl
mov dword [ebp + 0x54], 0
mov dword [ebp + 0x50], eax
mov byte [ebp + 0x48], al
mov ecx, dword [ebp + 0x78]
lea eax, [edi + edi*2]
mov dword [ebp + 0x40], eax
test ecx, ecx
je 0x43fb97
mov eax, ebx
sub eax, dword [ebp + 0x70]
sar eax, 1
lea edi, [ecx + eax*2]
mov dword [ebp + 0x44], edi
jmp 0x43fbbd
mov esi, dword [ebp + 0x44]
add esi, esi
mov eax, esi
call fcn.004b5a90
mov edi, esp
push esi
push 0
push edi
mov dword [ebp + 0x44], edi
call fcn.0049dcb0
add esp, 0xc
mov edx, edi
mov ecx, ebx
call fcn.00483d10
mov eax, dword [ebp + 0x64]
cmp al, 0x14
ja 0x43fbc8
cmp al, 0x12
jae 0x43fbd5
mov edx, 1
mov dword [ebp + 0x50], edx
mov byte [ebp + 0x48], dl
jmp 0x43fbd8
mov edx, dword [ebp + 0x50]
cmp al, 0xf
jne 0x43fc9d
movzx eax, word [ebx]
mov esi, ebx
mov dword [ebp + 0x78], eax
movzx edi, ax
add eax, 0xffffffbf
cmp ax, 0x19
mov eax, edi
ja 0x43fbfb
or eax, 0x20
jmp 0x43fbfd
mov edi, eax
cmp ax, 0x69
jne 0x43fc20
mov cx, word [esi + 2]
call fcn.0040c2e0
cmp ax, 0x6e
jne 0x43fc20
movzx eax, word [esi + 4]
cmp eax, 0x20
je 0x43fc82
cmp eax, 9
je 0x43fc82
cmp word [ebp + 0x78], 0x7f
ja 0x43fc45
push edi
call fcn.004a3760
add esp, 4
test eax, eax
jne 0x43fc45
movzx eax, word [esi]
cmp eax, 0x5f
je 0x43fc45
cmp eax, 0x2c
jne 0x43fa65
movzx eax, word [esi]
cmp eax, 0x7f
ja 0x43fc62
push eax
call fcn.004a36d0
add esp, 4
test eax, eax
jne 0x43fc62
movzx eax, word [esi]
cmp eax, 0x5f
jne 0x43fc67
add esi, 2
jmp 0x43fc45
cmp eax, 0x2c
jne 0x43fc70
add esi, 2
nop
movzx eax, word [esi]
cmp eax, 0x20
je 0x43fc6c
cmp eax, 9
je 0x43fc6c
jmp 0x43fbe5
mov edx, dword [ebp + 0x50]
cmp esi, ebx
mov ecx, 0x20
mov eax, 0x2c
cmove eax, ecx
mov word [esi + 2], cx
mov word [esi], ax
jmp 0x43fcad
xor ecx, ecx
movzx edx, dl
cmp al, 0x17
cmove edx, ecx
mov dword [ebp + 0x50], edx
mov byte [ebp + 0x48], dl
mov eax, dword [ebp + 0x40]
xor ecx, ecx
xor esi, esi
mov dword [ebp + 0x5c], esi
movsx edi, byte [eax*2 + 0x4e47a5]
mov dword [ebp + 0x3c], edi
lea eax, [edi - 1]
mov dword [ebp + 0x38], eax
cmp word [ebx], cx
je 0x43fe1f
cmp esi, edi
jge 0x43fe1f
mov edi, dword [ebp + 0x44]
lea eax, [ebx + ecx*2]
mov dword [ebp + esi*4 - 0x18], eax
lea eax, [edi + ecx*2]
mov dword [ebp + esi*4 - 0x68], eax
test dl, dl
je 0x43fd80
push edi
push ecx
mov edx, 0x2c
mov ecx, ebx
call fcn.00483e30
add esp, 8
mov ecx, eax
cmp word [ebx + ecx*2], 0
je 0x43fe02
cmp esi, dword [ebp + 0x38]
je 0x43fe18
xor eax, eax
mov word [ebx + ecx*2], ax
mov eax, dword [ebp + esi*4 - 0x18]
mov edi, dword [ebp + esi*4 - 0x68]
mov dword [ebp + 0x78], eax
cmp word [eax], 0
je 0x43fdda
mov edx, eax
lea esi, [edx + 2]
nop dword [eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x43fd40
sub edx, esi
sar edx, 1
lea esi, [edx - 1]
mov edx, dword [ebp + 0x5c]
lea eax, [edi + esi*2]
mov edi, dword [ebp + 0x78]
sub edi, dword [ebp + edx*4 - 0x68]
nop
movzx edx, word [edi + eax]
cmp edx, 0x20
je 0x43fd6e
cmp edx, 9
jne 0x43fdd0
cmp word [eax], 0
jne 0x43fdd0
test esi, esi
je 0x43fdbc
dec esi
sub eax, 2
jmp 0x43fd60
movzx eax, word [ebx + ecx*2]
cmp eax, 0x2c
jne 0x43fd9f
test edi, edi
je 0x43fd05
cmp word [edi + ecx*2], 0
je 0x43fd05
inc ecx
jmp 0x43fd80
test ax, ax
je 0x43fd05
cmp eax, 0x60
jne 0x43fdb9
test edi, edi
jne 0x43fdb9
cmp word [ebx + ecx*2 + 2], di
je 0x43fdb9
inc ecx
inc ecx
jmp 0x43fd80
cmp edx, 0x20
je 0x43fdc6
cmp edx, 9
jne 0x43fdda
mov eax, dword [ebp + 0x78]
xor edx, edx
mov word [eax], dx
jmp 0x43fdda
mov eax, dword [ebp + 0x78]
xor edx, edx
mov word [eax + esi*2 + 2], dx
mov edi, dword [ebp + 0x44]
inc ecx
mov esi, ebx
sub esi, edi
lea eax, [edi + ecx*2]
movzx edx, word [esi + eax]
cmp edx, 0x20
je 0x43fdf3
cmp edx, 9
jne 0x43fdff
cmp word [eax], 0
jne 0x43fdff
inc ecx
add eax, 2
jmp 0x43fde5
mov esi, dword [ebp + 0x5c]
mov edi, dword [ebp + 0x3c]
inc esi
cmp word [ebx + ecx*2], 0
mov dword [ebp + 0x5c], esi
je 0x43fe1f
mov edx, dword [ebp + 0x50]
jmp 0x43fcd1
mov edi, dword [ebp + 0x3c]
inc esi
mov dword [ebp + 0x5c], esi
mov eax, dword [ebp + 0x40]
mov al, byte [eax*2 + 0x4e47a4]
movsx edx, al
mov byte [ebp + 0x7b], al
cmp esi, edx
jge 0x43fe8b
cmp byte [ebp + 0x7b], 1
mov ecx, 0x4cee98
mov eax, 0x4d7c58
cmovle eax, ecx
push eax
mov eax, dword [ebp + 0x40]
push edx
push dword [eax*2 + 0x4e47a0]
lea eax, [ebp - 0xa64]
push 0x4d7c60
push 0x400
push eax
call fcn.00481920
mov ecx, dword [ebp + 0x58]
lea eax, [ebp - 0xa64]
add esp, 0x18
push dword [ebp + 0x70]
push eax
call fcn.0040d780
lea esp, [ebp - 0xa70]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x68]
pop ebp
ret 0x10
cmp word [ebx + ecx*2], 0
mov ebx, dword [ebp + 0x64]
je 0x43fef6
cmp bl, 2
je 0x43fef6
cmp bl, 0x17
je 0x43fef6
mov ecx, 0x4cee98
cmp edi, 1
mov eax, 0x4d7c58
cmovle eax, ecx
push eax
mov eax, dword [ebp + 0x40]
push edi
push dword [eax*2 + 0x4e47a0]
lea eax, [ebp - 0xa64]
push 0x4d7cb0
push 0x400
push eax
call fcn.00481920
mov ecx, dword [ebp + 0x58]
lea eax, [ebp - 0xa64]
add esp, 0x18
push dword [ebp + 0x70]
push eax
call fcn.0040d780
lea esp, [ebp - 0xa70]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x68]
pop ebp
ret 0x10
xor eax, eax
cmp bl, 0x1b
jne 0x43ff01
mov edx, esi
jmp 0x43ff09
cmp bl, 0x17
jne 0x43ff09
lea edx, [esi - 1]
test edx, edx
jle 0x43ff27
nop dword [eax]
lea ecx, [eax + 1]
mov eax, dword [ebp + eax*4 - 0x18]
cmp word [eax], 0
je 0x43ffd0
mov eax, ecx
cmp eax, edx
jl 0x43ff10
test esi, esi
je 0x440027
cmp bl, 0xa
jb 0x43ff39
cmp bl, 0x10
jbe 0x43ff4c
cmp bl, 8
je 0x43ff4c
cmp bl, 0x17
je 0x43ff4c
cmp bl, 0x1a
jne 0x44004b
cmp byte [ebp + 0x63], 0
jne 0x440027
mov esi, dword [ebp + esi*4 - 0x1c]
mov ecx, esi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43ff60
sub ecx, edx
sar ecx, 1
lea eax, [ecx - 1]
lea eax, [esi + eax*2]
cmp eax, esi
jb 0x440024
cmp word [eax], 0x7b
jne 0x440024
xor ecx, ecx
mov byte [ebp + 0x63], 1
mov word [eax], cx
cmp word [esi], cx
je 0x4400b9
mov ecx, esi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x43ffa0
sub ecx, edx
sar ecx, 1
lea eax, [ecx - 1]
lea eax, [esi + eax*2]
movzx edx, word [eax]
cmp edx, 0x20
je 0x43ffc2
cmp edx, 9
jne 0x440016
cmp eax, esi
je 0x4400b4
sub eax, 2
dec ecx
jmp 0x43ffb5
mov eax, dword [ebp + 0x40]
push ecx
push dword [eax*2 + 0x4e47a0]
lea eax, [ebp - 0xa64]
push 0x4d7d00
push 0x400
push eax
call fcn.00481920
mov ecx, dword [ebp + 0x58]
lea eax, [ebp - 0xa64]
add esp, 0x14
push dword [ebp + 0x70]
push eax
call fcn.0040d780
lea esp, [ebp - 0xa70]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x68]
pop ebp
ret 0x10
xor edx, edx
mov word [eax + 2], dx
test ecx, ecx
je 0x4400b9
mov esi, dword [ebp + 0x5c]
cmp bl, 0x1a
jne 0x44004b
test esi, esi
je 0x44004b
mov eax, dword [ebp - 0x18]
cmp word [eax], 0
jne 0x44004b
mov ecx, dword [ebp + 0x58]
push 0x4cee98
push 0x4d7d60
call fcn.0040d780
push dword [ebp + 0x48]
lea eax, [ebp - 0x68]
push eax
push esi
mov esi, dword [ebp + 0x58]
lea eax, [ebp - 0x18]
push eax
push dword [ebp + 0x74]
mov ecx, esi
call fcn.004401c0
test eax, eax
je 0x43ef8f
cmp byte [ebp + 0x63], 0
je 0x44008b
push 0
push 0
push 0
push 0
push 3
mov ecx, esi
call fcn.004401c0
test eax, eax
je 0x43ef8f
mov eax, dword [ebp + 0x54]
test eax, eax
je 0x43f1cd
push 0
push 0
push 0
push eax
mov ecx, esi
call fcn.0043ec60
lea esp, [ebp - 0xa70]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x68]
pop ebp
ret 0x10
xor ecx, ecx
mov word [eax], cx
cmp bl, 0xa
je 0x4400e8
cmp bl, 0x17
je 0x4400e8
cmp bl, 0x1a
je 0x4400e8
push dword [ebp + 0x70]
mov ecx, dword [ebp + 0x58]
push 0x4d76c8
call fcn.0040d780
lea esp, [ebp - 0xa70]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x68]
pop ebp
ret 0x10
mov esi, dword [ebp + 0x5c]
dec esi
jmp 0x440027