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

Disassembly:
mov eax, 0x10ce0
call fcn.0049bfd0
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 0x41ca6a
lea edx, [esp + 0xe0]
sub edx, eax
nop
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x41ca30
mov eax, dword [esp + 0x10d04]
mov dword [esp + 0x20], eax
test eax, eax
je 0x41ca82
lea ecx, [eax + 2]
mov ebp, ecx
movzx eax, word [ebp]
cmp eax, 0x20
je 0x41ca65
cmp eax, 9
jne 0x41d142
add ebp, 2
jmp 0x41ca53
cmp byte [esp + 0x10cf8], 3
jne 0x41cab3
xor eax, eax
mov word [esp + 0xe0], ax
mov dword [esp + 0x20], eax
mov byte [esp + 0x17], 0
mov ax, word [0x4c7978]
mov byte [esp + 0x16], 0
cmp word [ebp], ax
jne 0x41d1a6
movzx eax, word [ebp + 2]
add ebp, 2
cmp eax, 0x20
je 0x41ca9c
cmp eax, 9
jne 0x41da07
jmp 0x41ca9c
push 6
push 0x4aa1cc
push ebp
call fcn.0049115d
add esp, 0xc
test eax, eax
jne 0x41cae6
mov ecx, dword [0x4c7a54]
mov ebx, dword [ecx + 0xb4]
neg ebx
sbb ebx, ebx
and ebx, 0xffffff80
add ebx, 0xc1
mov dword [esp + 0x1c], ebx
jmp 0x41cb42
mov edx, dword [0x4c7a54]
cmp dword [edx + 0xb4], 0
je 0x41d118
push 5
push 0x4aa1dc
push ebp
call fcn.0049115d
add esp, 0xc
test eax, eax
jne 0x41cb1e
mov dword [esp + 0x1c], 0x42
mov ebx, dword [esp + 0x1c]
lea eax, [ebp + 0xa]
jmp 0x41cb45
push 6
push 0x4a68a4
push ebp
call fcn.0049115d
add esp, 0xc
test eax, eax
jne 0x41d118
mov dword [esp + 0x1c], 0x62
mov ebx, dword [esp + 0x1c]
lea eax, [ebp + 0xc]
movzx ecx, word [eax]
test cx, cx
je 0x41d09b
cmp ecx, 0x20
je 0x41cb5f
cmp ecx, 9
jne 0x41d118
mov esi, eax
movzx eax, word [esi]
cmp eax, 0x20
je 0x41cb6e
cmp eax, 9
jne 0x41cb73
add esi, 2
jmp 0x41cb61
cmp word [esi], 0
je 0x41d09b
movzx ebp, word [esi + 2]
xor eax, eax
push eax
push esi
mov word [esi + 2], ax
call fcn.0047b140
add esp, 8
mov word [esi + 2], bp
test eax, eax
je 0x41d111
cmp byte [edi + 0x48], 0
mov ebp, dword [0x4c7a54]
je 0x41cbf6
mov eax, dword [ebp + 0xb4]
cmp byte [eax + 0x3c], 0
jne 0x41cbf6
cmp ebx, 0x62
je 0x41cbc6
cmp ebx, 0x42
setne cl
add cl, 0x41
mov byte [eax + 0x3c], cl
mov eax, dword [edi + 4]
test eax, eax
je 0x41cc54
mov al, byte [eax]
cmp al, 9
jb 0x41cbdb
cmp al, 0x20
jbe 0x41cbef
cmp al, 0x21
je 0x41cbef
cmp al, 0x69
jb 0x41cbe7
cmp al, 0x6b
jbe 0x41cbef
cmp al, 0x6f
jb 0x41cc54
cmp al, 0x71
ja 0x41cc54
mov byte [esp + 0x16], 1
jmp 0x41cc59
mov eax, dword [ebp + 0xb4]
test eax, eax
je 0x41cbc6
movzx edx, byte [eax + 0x3c]
cmp ebx, edx
jne 0x41cbc6
cmp ebx, 0x41
jne 0x41cc2e
mov eax, dword [esp + 0x10cf4]
push eax
push 0x4aa1e8
mov ecx, edi
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
cmp ebx, 0x42
jne 0x41cbc6
mov ecx, dword [esp + 0x10cf4]
push ecx
push 0x4aa258
mov ecx, edi
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov byte [esp + 0x16], 0
cmp word [esi], 0
mov byte [esp + 0x17], 0
mov edi, esi
je 0x41d0c8
lea ebx, [ebx]
mov ebx, 0x4aa2c8
mov eax, edi
call fcn.00409e50
mov dword [esp + 0x24], eax
test eax, eax
jne 0x41cca6
mov eax, edi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41cc90
sub eax, edx
sar eax, 1
lea eax, [edi + eax*2]
mov dword [esp + 0x24], eax
mov esi, eax
sub esi, edi
sar esi, 1
cmp dword [ebp + 0xb4], 0
je 0x41cd9a
mov edx, dword [0x4c7a54]
mov eax, dword [edx + 0xb4]
xor ebp, ebp
cmp dword [eax + 0x10], ebp
jle 0x41cd03
xor ebx, ebx
mov edi, edi
mov eax, dword [eax + 0xc]
mov ecx, dword [eax + ebx]
mov eax, dword [ecx + 0x18]
push 0xffffffffffffffff
push esi
mov ecx, edi
call fcn.00477420
add esp, 8
test eax, eax
je 0x41cfdb
mov edx, dword [0x4c7a54]
mov eax, dword [edx + 0xb4]
inc ebp
add ebx, 0x10
cmp ebp, dword [eax + 0x10]
jl 0x41ccd0
mov ecx, dword [esp + 0x18]
push 0
push 2
push 0
push esi
push edi
call fcn.00423d20
mov ebp, eax
mov eax, dword [esp + 0x1c]
test ebp, ebp
je 0x41cd3b
movzx ecx, byte [ebp + 0x16]
xor ecx, eax
test ecx, 0xffffffbf
jne 0x41cff7
cmp eax, 0x62
je 0x41cff7
xor ebp, ebp
cmp eax, 0x41
je 0x41cd92
mov edx, dword [0x4c7a54]
mov eax, dword [edx + 0xb4]
xor ebx, ebx
cmp dword [eax + 0x34], ebx
jle 0x41cd92
mov eax, dword [eax + 0x24]
mov ecx, dword [eax + ebx*4]
mov ecx, dword [ecx + 0x18]
push esi
push 0xffffffffffffffff
mov eax, edi
call fcn.00477420
add esp, 8
test eax, eax
je 0x41cd81
mov edx, dword [0x4c7a54]
mov eax, dword [edx + 0xb4]
inc ebx
cmp ebx, dword [eax + 0x34]
jl 0x41cd53
jmp 0x41cd92
mov eax, dword [0x4c7a54]
mov ecx, dword [eax + 0xb4]
mov edx, dword [ecx + 0x24]
mov ebp, dword [edx + ebx*4]
test ebp, ebp
jne 0x41cff7
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
push ebx
push esi
push edi
call fcn.00423cc0
mov ebp, eax
test ebp, ebp
je 0x41d08c
mov al, byte [ebp + 0x17]
test al, al
jne 0x41cdc1
mov eax, dword [ebp + 0xc]
mov al, byte [eax + 0x17]
cmp al, 1
jne 0x41d057
push 0xffffffffffffffff
push esi
mov eax, 0x4a9690
mov ecx, edi
call fcn.00477420
add esp, 8
test eax, eax
je 0x41d057
mov ecx, dword [0x4c7a54]
cmp ebx, 0x41
jne 0x41ce17
mov edx, dword [ecx + 0xb4]
cmp dword [edx + 0x34], 0x7d0
jge 0x41d01f
mov eax, edx
mov edx, dword [eax + 0x34]
mov eax, dword [eax + 0x24]
mov dword [eax + edx*4], ebp
mov eax, dword [ecx + 0xb4]
inc dword [eax + 0x34]
jmp 0x41ce22
cmp ebx, 0xc1
jne 0x41ce22
mov byte [ebp + 0x16], bl
mov eax, dword [esp + 0x24]
call fcn.00409ea0
movzx ecx, word [eax]
cmp ecx, 0x3d
ja case.0x41ce3a.1
movzx ecx, byte [ecx + 0x41e884]
jmp dword [ecx*4 + 0x41e870]
add eax, 2
call fcn.00409ea0
mov ebx, dword [esp + 0x18]
mov edi, eax
jmp 0x41cfc6
cmp word [eax + 2], 0x3d
jne 0x41d03b
add eax, 4
xor bl, bl
xor dl, dl
xor ebp, ebp
xor esi, esi
lea ebx, [ebx]
movzx ecx, word [eax + esi*2]
cmp ecx, 0x2c
jne 0x41cf15
test dl, dl
jne case.0x41cf21.1
test ebp, ebp
jg case.0x41cf21.1
lea ebp, [eax + esi*2]
lea eax, [ebp - 2]
mov edx, edi
call fcn.00409ec0
mov esi, eax
movzx edx, word [esi + 2]
xor eax, eax
mov dword [esp + 0x24], edx
mov word [esi + 2], ax
test bl, bl
je 0x41cefa
lea edx, [esp + 0x8ce8]
mov eax, edi
sub edx, edi
lea esp, [esp]
movzx ecx, word [eax]
mov word [eax + edx], cx
add eax, 2
test cx, cx
jne 0x41cec0
push 0
push 0xffffffffffffffff
push 1
push 1
push 0x4a68d4
lea ecx, [esp + 0x8cfc]
push 0x4a68dc
push ecx
xor eax, eax
call fcn.00477b20
add esp, 0x1c
lea edi, [esp + 0x8ce8]
cmp dword [esp + 0x1c], 0x62
mov ebx, dword [esp + 0x18]
jne 0x41cf49
mov byte [ebx + 0x49], 1
jmp 0x41cf72
add eax, 2
mov bl, 1
jmp 0x41ce64
cmp ecx, 0x7d
ja case.0x41cf21.1
movzx ecx, byte [ecx + 0x41e8d8]
jmp dword [ecx*4 + 0x41e8c4]
test dl, dl
sete dl
inc esi
jmp 0x41ce70
test dl, dl
jne case.0x41cf21.1
inc ebp
inc esi
jmp 0x41ce70
test dl, dl
jne case.0x41cf21.1
dec ebp
inc esi
jmp 0x41ce70
cmp byte [esp + 0x16], 0
je 0x41cf72
cmp byte [esp + 0x17], 0
jne 0x41cf72
push 0
push 0
push 0
push 0x75
push ebx
call fcn.0041efb0
test eax, eax
je 0x41d08c
mov byte [esp + 0x17], 1
push 0
push 0
push 0
push 0
push 0
push 0
push edi
mov ecx, ebx
call fcn.0041ca00
test eax, eax
je 0x41d08c
cmp dword [esp + 0x1c], 0x62
jne 0x41cfa8
mov eax, dword [ebx + 4]
mov byte [ebx + 0x49], 0
movzx edx, byte [eax]
mov dword [eax + 0xc], edx
mov eax, dword [ebx + 4]
mov byte [eax], 8
mov cx, word [esp + 0x24]
mov word [esi + 2], cx
cmp word [ebp], 0x2c
jne 0x41cfc4
lea eax, [ebp + 2]
call fcn.00409ea0
mov edi, eax
jmp 0x41cfc6
mov edi, ebp
cmp word [edi], 0
je 0x41d073
mov ebp, dword [0x4c7a54]
jmp 0x41cc70
mov ecx, dword [esp + 0x18]
push edi
push 0x4aa2d8
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
test byte [ebp + 0x16], 0x40
mov eax, 0x4aa31c
jne 0x41d007
mov eax, 0x4aa350
mov ecx, dword [esp + 0x18]
push edi
push eax
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov ecx, dword [esp + 0x18]
push edi
push 0x4aa3fc
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov ecx, dword [esp + 0x18]
push edi
push 0x4a9bd8
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov ecx, dword [esp + 0x18]
push edi
push 0x4aa3a8
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
cmp byte [esp + 0x17], 0
je 0x41d0c8
push 0
push 0
push 0
push 0x76
push ebx
call fcn.0041efb0
test eax, eax
jne 0x41d0c8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
cmp byte [edi + 0x48], 0
je 0x41d0f7
mov edx, dword [0x4c7a54]
mov ecx, dword [edx + 0xb4]
mov al, byte [ecx + 0x3c]
test al, al
jne 0x41d0da
cmp ebx, 0x42
jne 0x41d0c5
mov dword [esp + 0x1c], 0x46
mov ebx, dword [esp + 0x1c]
mov byte [ecx + 0x3c], bl
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
cmp al, 0x46
jne 0x41d0f7
cmp ebx, 0x62
jne 0x41d0f7
mov byte [ecx + 0x3c], 0x66
lea eax, [ebx - 0x61]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
push ebp
push 0x4a9bd8
mov ecx, edi
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov ebp, dword [esp + 0x10cf4]
push 1
push ebp
lea eax, [esp + 0xe8]
push eax
push edi
call fcn.0041ecf0
mov dword [esp + 0x20], eax
test eax, eax
jne 0x41ca4e
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
movzx eax, word [ecx]
cmp ax, word [0x4c7978]
je 0x41d19c
test ax, ax
je 0x41d19c
cmp eax, 0x20
je 0x41d19c
cmp eax, 9
je 0x41d19c
cmp eax, 0x28
jne 0x41ca82
lea ecx, [esp + 0xe0]
push 0x4a96e4
push ecx
call fcn.00490f59
add esp, 8
test eax, eax
je 0x41d19c
lea edx, [esp + 0xe0]
push 0x4a96ec
push edx
call fcn.00490f59
add esp, 8
test eax, eax
jne 0x41ca82
mov byte [esp + 0x17], 1
jmp 0x41ca87
cmp byte [esp + 0x10cf8], 0
jne 0x41dc4d
cmp byte [esp + 0x10cfc], 0
jne case.0x41d6b2.39
cmp byte [esp + 0x17], 0
je 0x41d690
lea ecx, [esp + 0xe0]
push 0x4a96e4
push ecx
call fcn.00490f59
add esp, 8
test eax, eax
jne 0x41d690
movzx eax, word [ebp]
cmp eax, 0x28
je case.0x41d2f9.34
cmp ax, word [0x4c797c]
jne 0x41d216
movzx eax, word [ebp + 2]
cmp eax, 0x20
je case.0x41d2f9.34
cmp eax, 9
je case.0x41d2f9.34
mov ax, word [0x4c7978]
mov edx, 0x20
mov word [esp + 0x3a], ax
lea ebx, [esp + 0x38]
mov eax, ebp
mov word [esp + 0x38], dx
mov dword [esp + 0x3c], 0x90028
mov dword [esp + 0x40], 0x3e003c
mov dword [esp + 0x44], 0x3d003a
mov dword [esp + 0x48], 0x2d002b
mov dword [esp + 0x4c], 0x2f002a
mov dword [esp + 0x50], 0x7e0021
mov dword [esp + 0x54], 0x7c0026
mov dword [esp + 0x58], 0x5b005e
mov dword [esp + 0x5c], 0x3f002e
mov dword [esp + 0x60], 0x7b
call fcn.00409e50
test eax, eax
je 0x41d293
call fcn.00409ea0
mov esi, eax
jmp 0x41d2b3
mov eax, ebp
lea edx, [eax + 2]
jmp 0x41d2a0
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41d2a0
sub eax, edx
sar eax, 1
lea esi, [ebp + eax*2]
push 3
push 0x4a74b4
push ebp
call fcn.0049115d
add esp, 0xc
test eax, eax
jne 0x41d2e1
movzx eax, word [ebp + 6]
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.00491ad1
add esp, 8
test eax, eax
je 0x41d2e1
mov bl, 1
jmp 0x41d2e3
xor bl, bl
movzx eax, word [esi]
add eax, 0xffffffdf
cmp eax, 0x4d
ja case.0x41d2f9.34
movzx ecx, byte [eax + 0x41e97c]
jmp dword [ecx*4 + 0x41e958]
mov byte [esp + 0x10cf8], 0x12
jmp 0x41d335
movzx eax, word [esi + 2]
sub eax, 0x3d
je 0x41d324
dec eax
je 0x41d3fc
mov byte [esp + 0x10cf8], 0x16
jmp 0x41d335
mov byte [esp + 0x10cf8], 0x17
mov eax, 0x20
mov word [esi + 2], ax
mov ax, word [0x4c7978]
mov word [esi], ax
mov al, byte [esp + 0x10cf8]
cmp al, 0xf
je 0x41d351
cmp al, 0x10
jne 0x41da07
mov eax, 0x4a97a4
mov ecx, esi
call fcn.00477730
mov esi, eax
test esi, esi
je 0x41d3a6
movzx ecx, word [esi - 2]
push ecx
push 0x4a780c
call fcn.00491ad1
add esp, 8
test eax, eax
je 0x41d393
movzx edx, word [esi + 6]
push edx
push 0x4a780c
call fcn.00491ad1
add esp, 8
test eax, eax
jne 0x41d67a
lea ecx, [esi + 6]
mov eax, 0x4a97a4
call fcn.00477730
mov esi, eax
test esi, esi
jne 0x41d363
mov eax, dword [esp + 0x10cf4]
push eax
push 0x4aa434
mov ecx, edi
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
cmp word [esi + 2], 0x3d
jne 0x41d3e4
mov ecx, 0x20
mov byte [esp + 0x10cf8], 0x15
mov word [esi + 2], cx
jmp 0x41d335
mov byte [esp + 0x10cf8], 0x14
jmp 0x41d335
cmp word [esi + 2], 0x3d
jne case.0x41d2f9.34
mov edx, 0x20
mov byte [esp + 0x10cf8], 0x13
mov word [esi + 2], dx
jmp 0x41d335
test bl, bl
jne case.0x41d2f9.34
push 7
push 0x4a6834
push esi
call fcn.0049115d
add esp, 0xc
test eax, eax
jne case.0x41d2f9.34
mov eax, 0x20
movzx ecx, ax
mov eax, ecx
shl ecx, 0x10
or eax, ecx
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov byte [esp + 0x10cf8], 0xf
mov word [esi + 0xc], ax
jmp 0x41d335
test bl, bl
jne case.0x41d2f9.34
push 8
push 0x4a6878
push esi
call fcn.0049115d
add esp, 0xc
test eax, eax
jne case.0x41d2f9.34
mov eax, 0x20
movzx ecx, ax
mov eax, ecx
shl ecx, 0x10
or eax, ecx
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov byte [esp + 0x10cf8], 0xb
mov dword [esi + 0xc], eax
jmp 0x41d335
mov ax, word [esi + 2]
call fcn.00409e20
movzx eax, ax
add eax, 0xffffffb2
cmp eax, 0x25
ja case.0x41d2f9.34
movzx edx, byte [eax + 0x41e9d8]
jmp dword [edx*4 + 0x41e9cc]
test bl, bl
je 0x41d4c9
mov byte [esp + 0x10cf8], 0x11
jmp 0x41d525
lea eax, [esi + 4]
call fcn.00409ea0
push 3
mov ebx, eax
push 0x4aa42c
push ebx
call fcn.0049115d
add esp, 0xc
test eax, eax
je 0x41d4f1
mov byte [esp + 0x10cf8], 0xd
jmp 0x41d50e
mov eax, 0x20
movzx ecx, ax
mov eax, ecx
shl ecx, 0x10
or eax, ecx
mov dword [ebx], eax
mov byte [esp + 0x10cf8], 0xe
mov word [ebx + 4], ax
cmp byte [esp + 0x10cf8], 0x11
mov edx, 0x20
mov word [esi + 2], dx
jne 0x41d335
mov eax, ebp
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41d530
sub eax, edx
sar eax, 1
cmp word [ebp + eax*2 - 2], 0x7b
lea eax, [ebp + eax*2 - 2]
jne 0x41dc4d
xor edx, edx
mov word [eax], dx
sub eax, ebp
sar eax, 1
mov esi, ebp
call fcn.00415420
mov byte [esp + 0x16], 1
jmp 0x41dc4d
test bl, bl
je 0x41d577
mov byte [esp + 0x10cf8], 0x11
jmp 0x41d525
mov byte [esp + 0x10cf8], 9
jmp 0x41d32c
push 3
push 0x4aa42c
push esi
call fcn.0049115d
add esp, 0xc
test eax, eax
jne case.0x41d2f9.34
movzx ecx, word [esi + 6]
lea eax, [esi + 6]
cmp ecx, 0x20
je 0x41d5b1
cmp ecx, 9
jne case.0x41d2f9.34
mov ecx, 0x20
movzx edx, cx
mov ecx, edx
shl edx, 0x10
or ecx, edx
mov dword [esi], ecx
mov word [esi + 4], cx
call fcn.00409ea0
push 2
mov ebx, eax
push 0x4a689c
push ebx
call fcn.0049115d
add esp, 0xc
test eax, eax
jne 0x41d5ff
mov eax, 0x20
movzx ecx, ax
mov eax, ecx
shl ecx, 0x10
or eax, ecx
mov byte [esp + 0x10cf8], 0xa
mov dword [ebx], eax
jmp 0x41d335
push 7
push 0x4a6834
push ebx
call fcn.0049115d
add esp, 0xc
test eax, eax
jne 0x41d63b
mov eax, 0x20
movzx ecx, ax
mov eax, ecx
shl ecx, 0x10
or eax, ecx
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov byte [esp + 0x10cf8], 0x10
mov word [ebx + 0xc], ax
jmp 0x41d335
push 8
push 0x4a6878
push ebx
call fcn.0049115d
add esp, 0xc
test eax, eax
jne 0x41d335
mov eax, 0x20
movzx ecx, ax
mov eax, ecx
shl ecx, 0x10
or eax, ecx
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov byte [esp + 0x10cf8], 0xc
mov dword [ebx + 0xc], eax
jmp 0x41d335
mov cx, word [0x4c7978]
mov word [esi], cx
mov dword [esi + 2], 0x200020
jmp 0x41da07
movzx ecx, word [ebp]
mov si, word [0x4c7978]
movzx eax, word [ebp + 2]
lea edx, [ecx - 0x26]
cmp edx, 0x56
ja case.0x41d6b2.39
movzx edx, byte [edx + 0x41ea28]
jmp dword [edx*4 + 0x41ea00]
mov byte [esp + 0x10cf8], 1
jmp 0x41d9e9
cmp eax, 0x3d
jne case.0x41d6b2.39
mov byte [esp + 0x10cf8], 2
jmp 0x41d950
cmp word [esp + 0xe0], 0x2b
jne 0x41d6f6
cmp word [esp + 0xe2], 0
jne 0x41d6f6
mov cl, 1
jmp 0x41d701
xor cl, cl
cmp eax, 0x3d
jne case.0x41d6b2.39
mov byte [esp + 0x10cf8], 4
test cl, cl
je 0x41d934
lea eax, [ebp + 2]
call fcn.00409ea0
mov ebx, 0x4aa490
mov ebp, eax
call fcn.00409e50
test eax, eax
je 0x41d8f0
mov byte [esp + 0x10cf8], 3
jmp 0x41da00
cmp word [esp + 0xe0], 0x2d
jne 0x41d75c
cmp word [esp + 0xe2], 0
jne 0x41d75c
mov cl, 1
mov byte [esp + 0x10cf8], 5
jmp 0x41d709
xor cl, cl
cmp eax, 0x3d
jne case.0x41d6b2.39
mov byte [esp + 0x10cf8], 5
jmp 0x41d709
cmp eax, 0x3d
jne case.0x41d6b2.39
mov byte [esp + 0x10cf8], 6
jmp 0x41d950
cmp eax, 0x3d
jne 0x41d799
mov byte [esp + 0x10cf8], 7
jmp 0x41d950
cmp eax, 0x2f
jne case.0x41d6b2.39
cmp word [ebp + 4], 0x3d
jne case.0x41d6b2.39
mov byte [esp + 0x10cf8], 3
jmp 0x41da00
cmp eax, 0x3d
jne case.0x41d6b2.39
mov byte [esp + 0x10cf8], 3
jmp 0x41da00
cmp ax, cx
jne case.0x41d6b2.39
movzx ecx, word [ebp + 4]
cmp ecx, 0x3d
je 0x41d7fe
cmp eax, 0x3e
jne case.0x41d6b2.39
cmp ecx, eax
jne case.0x41d6b2.39
cmp word [ebp + 6], 0x3d
jne case.0x41d6b2.39
mov byte [esp + 0x10cf8], 3
jmp 0x41da00
cmp eax, 0x3d
jne 0x41d81d
mov byte [esp + 0x10cf8], 3
jmp 0x41da00
lea esi, [ebp + 2]
mov eax, esi
call fcn.004320c0
cmp word [eax], 0x28
je 0x41d8e3
cmp eax, esi
je case.0x41d6b2.39
call fcn.00409ea0
mov esi, eax
movzx eax, word [esi]
cmp eax, 0x5b
je 0x41d7ad
test ax, ax
je 0x41d7ad
lea ebx, [esi + 2]
mov edi, 0x3d
cmp word [ebx], di
jne 0x41d878
push eax
push 0x4aa474
call fcn.00491ad1
add esp, 8
test eax, eax
jne 0x41d7ad
movzx eax, word [esi]
cmp word [ebx], ax
jne 0x41d8c6
push eax
push 0x4aa488
call fcn.00491ad1
add esp, 8
test eax, eax
je 0x41d89c
cmp word [esi + 4], di
je 0x41d7ad
movzx eax, word [esi]
cmp eax, 0x2b
je 0x41d7ad
cmp eax, 0x2d
je 0x41d7ad
cmp eax, 0x3e
jne 0x41d8c6
cmp word [esi + 4], ax
jne 0x41d8c6
cmp word [esi + 6], di
je 0x41d7ad
cmp ax, 0x2e
jne case.0x41d6b2.39
mov esi, ebx
mov eax, esi
call fcn.004320c0
cmp word [eax], 0x28
jne 0x41d831
mov byte [esp + 0x10cf8], 3
jmp 0x41da00
mov eax, ebp
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41d8f5
mov edi, dword [esp + 0x10cf4]
sub eax, edx
sar eax, 1
mov esi, eax
lea eax, [esi + esi + 2]
push eax
push ebp
push edi
call fcn.00491770
mov cx, word [0x4c7978]
mov word [edi + esi*2], cx
add esp, 0xc
mov dword [edi + esi*2 + 2], 0x31
jmp 0x41da00
cmp byte [esp + 0x10cf8], 3
je 0x41da00
cmp byte [esp + 0x10cf8], 1
je 0x41d9df
xor cl, cl
xor ebx, ebx
mov edx, 2
lea esp, [esp]
movzx eax, word [ebp + edx*2]
cmp ax, si
jne 0x41d993
test cl, cl
jne case.0x41d99f.1
test ebx, ebx
jg case.0x41d99f.1
cmp word [ebp + edx*2], 0
je 0x41d9df
mov al, byte [esp + 0x10cf8]
cmp al, 4
je 0x41d9be
cmp al, 5
je 0x41d9be
mov byte [esp + 0x10cf8], 3
jmp 0x41da00
cmp eax, 0x7d
ja case.0x41d99f.1
movzx eax, byte [eax + 0x41ea94]
jmp dword [eax*4 + 0x41ea80]
test cl, cl
sete cl
inc edx
jmp 0x41d960
test cl, cl
jne case.0x41d99f.1
inc ebx
inc edx
jmp 0x41d960
test cl, cl
jne case.0x41d99f.1
dec ebx
inc edx
jmp 0x41d960
lea eax, [ebp + edx*2 + 2]
call fcn.00409ea0
mov ebx, 0x4aa490
call fcn.00409e50
test eax, eax
je 0x41d9df
mov byte [esp + 0x10cf8], 3
jmp 0x41da00
cmp byte [esp + 0x10cf8], 3
je 0x41da00
cmp byte [esp + 0x10cf8], 1
mov word [ebp], si
je 0x41da00
mov ecx, 0x20
mov word [ebp + 2], cx
mov ebp, dword [esp + 0x10cf4]
cmp byte [esp + 0x10cf8], 0
jne 0x41dc4d
cmp byte [esp + 0x17], 0
je 0x41da4f
cmp byte [esp + 0x10cfc], 0
jne 0x41da4f
lea edi, [esp + 0xe0]
call fcn.0041ee10
mov byte [esp + 0x10cf8], al
test al, al
jne 0x41dc4d
call fcn.0041ee50
mov byte [esp + 0x10cfc], al
jmp 0x41da5d
cmp byte [esp + 0x10cf8], 0
jne 0x41dc4d
cmp byte [esp + 0x10cfc], 0
jne 0x41dc4d
movzx eax, word [ebp]
cmp eax, 0x7b
jne 0x41db02
lea edi, [esp + 0xe0]
call fcn.0041ee10
movzx ecx, al
add ecx, 0xffffffdf
cmp ecx, 0x50
ja case.0x41da96.34
movzx edx, byte [ecx + 0x41eb20]
jmp dword [edx*4 + 0x41eb14]
cmp word [ebp + 2], 0
mov byte [esp + 0x16], 1
jne case.0x41da96.34
mov byte [esp + 0x10cf8], al
test al, al
jne 0x41dc4d
movzx ecx, word [ebp]
push ecx
push 0x4aa490
call fcn.00491ad1
add esp, 8
test eax, eax
je 0x41dbd2
movzx eax, word [ebp]
cmp eax, 0x2b
je 0x41dae4
cmp eax, 0x2d
jne 0x41dba6
cmp word [ebp + 2], ax
jne 0x41dba6
cmp word [ebp + 4], 0
je 0x41db6a
mov byte [esp + 0x10cf8], 3
jmp 0x41db8d
cmp eax, 0x3a
jne case.0x41da96.34
lea eax, [esp + 0xe0]
push 0x4a9080
push eax
call fcn.00490f59
add esp, 8
test eax, eax
jne case.0x41da96.34
mov esi, dword [esp + 0x18]
push eax
push eax
push eax
push 0x74
push esi
call fcn.0041efb0
test eax, eax
je 0x41d08c
lea eax, [ebp + 2]
call fcn.00409ea0
cmp word [eax], 0
je 0x41d0c8
push 0
push 0
push 0
push 0
push 0
push 0
push eax
mov ecx, esi
call fcn.0041ca00
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov dx, word [0x4c7978]
cmp eax, 0x2b
setne al
add al, 4
mov byte [esp + 0x10cf8], al
mov eax, 0x31
mov word [ebp], dx
mov word [ebp + 2], ax
cmp byte [esp + 0x10cf8], 0
mov esi, dword [esp + 0x10cf4]
mov ebp, esi
jne 0x41dc4d
jmp 0x41dbd9
cmp eax, 0x3f
je 0x41dbc9
push 0x3f
push ebp
call fcn.00491ad1
add esp, 8
test eax, eax
je 0x41dbd2
push 0x3a
push eax
call fcn.00491ad1
add esp, 8
test eax, eax
je 0x41dbd2
mov ebp, dword [esp + 0x10cf4]
jmp 0x41dc45
mov esi, dword [esp + 0x10cf4]
movzx eax, word [ebp]
cmp eax, 0x28
je 0x41dc43
cmp eax, 0x5b
je 0x41dc43
cmp word [esi], 0x28
je 0x41dc43
push 3
push 0x4aa4c4
push esi
call fcn.0049115d
add esp, 0xc
test eax, eax
jne 0x41dc0f
movzx eax, word [esi + 6]
cmp eax, 0x20
je 0x41dc43
cmp eax, 9
je 0x41dc43
push 0x4a97e4
push esi
call fcn.00491af8
add esp, 8
test eax, eax
mov eax, 0x4aa4cc
jne 0x41dc2b
mov eax, 0x4a9bd8
mov ecx, dword [esp + 0x18]
push esi
push eax
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov ebp, esi
mov byte [esp + 0x10cf8], 3
movzx edi, byte [esp + 0x10cf8]
lea eax, [edi - 0x21]
mov dword [esp + 0x2c], 0
cmp eax, 0x53
ja case.0x41dc70.34
movzx ecx, byte [eax + 0x41eb84]
jmp dword [ecx*4 + 0x41eb74]
cmp word [ebp], 0x7b
jne case.0x41dc70.34
jmp 0x41dc8b
cmp word [ebp], 0x7b
jne 0x41dc9a
lea eax, [ebp + 2]
mov byte [esp + 0x16], 1
call fcn.00409ea0
mov ebp, eax
cmp word [ebp], 0
je case.0x41dc70.34
mov dword [esp + 0x2c], ebp
sub ebp, 2
xor edx, edx
mov word [ebp], dx
jmp case.0x41dc70.34
xor ebx, ebx
lea edx, [ebx + 0x3d]
lea esp, [esp]
movzx eax, word [ebp + ebx*2]
cmp eax, 0x3a
jne 0x41dcd1
cmp word [ebp + ebx*2 + 2], dx
jne case.0x41dcdd.0
cmp eax, 0x7d
ja case.0x41dcdd.1
movzx eax, byte [eax + 0x41ebf8]
jmp dword [eax*4 + 0x41ebd8]
movzx eax, word [ebp + ebx*2 + 2]
inc ebx
test ax, ax
je case.0x41dcdd.0
cmp eax, 0x22
jne case.0x41dcdd.34
inc ebx
jmp 0x41dcc0
push 0
inc ebx
push ebx
push 0x3a
jmp 0x41dd17
mov eax, 0x29
jmp 0x41dd12
mov eax, 0x5d
jmp 0x41dd12
mov eax, 0x7d
push 0
inc ebx
push ebx
push eax
push ebp
call fcn.00479900
mov ebx, eax
add esp, 0x10
cmp word [ebp + ebx*2], 0
je 0x41dd35
inc ebx
jmp 0x41dcc0
cmp word [ebp + ebx*2], 0
jne 0x41dd58
mov ecx, dword [esp + 0x10cf4]
push ecx
mov ecx, dword [esp + 0x1c]
push 0x4aa4ec
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
xor edx, edx
or eax, 0xffffffff
mov esi, ebp
mov word [ebp + ebx*2], dx
call fcn.00415420
lea eax, [ebp + ebx*2 + 2]
call fcn.00409ea0
cmp word [eax], 0
mov dword [esp + 0x2c], eax
jne case.0x41dc70.34
mov dword [esp + 0x2c], 0
mov bl, byte [esp + 0x10cf8]
test bl, bl
je 0x41dda5
lea eax, [edi*8]
sub eax, edi
lea ecx, [eax*2 + 0x4c7a68]
mov dword [esp + 0x30], ecx
jmp 0x41ddc1
movzx eax, byte [esp + 0x10cfc]
lea edx, [eax*8]
sub edx, eax
lea eax, [edx*2 + 0x4c86e8]
mov dword [esp + 0x30], eax
push 0x8002
lea ecx, [esp + 0xce4]
push 0
push ecx
call fcn.004998e0
mov edx, dword [esp + 0x10d14]
add esp, 0xc
test edx, edx
je 0x41de18
mov ecx, dword [esp + 0x10d0c]
mov eax, ebp
sub eax, dword [esp + 0x20]
sar eax, 1
sub ecx, eax
test ecx, ecx
jle 0x41dedd
add ecx, ecx
push ecx
lea edx, [edx + eax*2]
push edx
lea eax, [esp + 0xce8]
push eax
call fcn.00498b20
add esp, 0xc
jmp 0x41dedd
xor esi, esi
cmp word [ebp + esi*2], 0
mov ax, word [0x4c7980]
je 0x41de38
cmp word [ebp + esi*2], ax
je 0x41de38
inc esi
cmp word [ebp + esi*2], 0
jne 0x41de28
cmp word [ebp + esi*2], 0
lea ebx, [ebp + esi*2]
je 0x41ded6
movzx eax, word [ebx + 2]
lea ecx, [ebx + 2]
add eax, 0xffffff9f
cmp eax, 0x15
ja case.0x41de5e.99
movzx edx, byte [eax + 0x41ec98]
jmp dword [edx*4 + 0x41ec78]
mov eax, 7
jmp 0x41de9d
mov edx, 8
mov word [ecx], dx
jmp case.0x41de5e.99
mov eax, 0xc
jmp 0x41de9d
mov edx, 0xa
mov word [ecx], dx
jmp case.0x41de5e.99
mov eax, 0xd
jmp 0x41de9d
mov edx, 9
mov word [ecx], dx
jmp case.0x41de5e.99
mov eax, 0xb
mov word [ecx], ax
mov eax, ecx
lea edi, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x41dea5
sub eax, edi
sar eax, 1
lea edx, [eax + eax + 2]
push edx
push ecx
push ebx
call fcn.00498b20
mov eax, 1
add esp, 0xc
mov word [esp + esi*2 + 0xce0], ax
inc esi
jmp 0x41de1a
mov bl, byte [esp + 0x10cf8]
mov dword [esp + 0x1c], 0
cmp bl, 0x22
jne 0x41e080
xor ebx, ebx
mov edi, 1
mov dword [esp + 0x28], edi
cmp word [ebp], bx
je 0x41e16d
cmp edi, 1
jle 0x41df10
inc ebx
lea esp, [esp]
movzx eax, word [ebp + ebx*2]
cmp eax, 0x20
je 0x41df08
cmp eax, 9
je 0x41df08
lea edx, [ebx + ebx]
mov cx, word [edx + ebp]
lea eax, [edx + ebp]
cmp cx, word [0x4c797c]
jne 0x41df75
cmp word [esp + edx + 0xce0], 0
jne 0x41df75
movzx ecx, word [eax + 2]
cmp ecx, 0x20
je 0x41df4b
cmp ecx, 9
jne 0x41df75
cmp edi, 3
jge 0x41e16d
movzx ecx, word [0x4c7978]
lea edx, [esp + 0xce0]
push edx
push ecx
lea eax, [ebx + 2]
mov ecx, ebp
call fcn.00479800
add esp, 8
mov esi, eax
jmp 0x41dff1
cmp word [eax], 0
mov esi, ebx
je 0x41dfa8
mov di, word [0x4c7978]
mov ecx, eax
cmp word [ecx], di
jne 0x41df96
cmp word [esp + edx + 0xce0], 0
je 0x41dfa4
inc esi
lea edx, [esi + esi]
cmp word [edx + ebp], 0
lea ecx, [edx + ebp]
jne 0x41df86
mov edi, dword [esp + 0x28]
cmp edi, 1
jne 0x41dfec
cmp word [ebp + esi*2], 0
je 0x41e16d
xor edx, edx
push edx
push edx
push edi
push edx
mov word [ebp + esi*2], dx
call fcn.004771e0
add esp, 0x10
test eax, eax
jne 0x41dfd4
mov dword [esp + 0x1c], edi
cmp dword [esp + 0x1c], 0
mov ax, word [0x4c7978]
mov word [ebp + esi*2], ax
jne 0x41e16d
jmp 0x41dff1
cmp edi, 4
je 0x41e009
inc edi
cmp word [ebp + esi*2], 0
mov ebx, esi
mov dword [esp + 0x28], edi
jne 0x41df03
jmp 0x41e16d
push 0
push 1
lea edi, [ebp + ebx*2]
push 1
push 0
mov eax, edi
call fcn.004771e0
add esp, 0x10
test eax, eax
jne 0x41e16d
cmp word [ebp + esi*2], ax
jne 0x41e073
mov ax, word [0x4c797c]
cmp word [edi], ax
jne 0x41e073
cmp word [esp + ebx*2 + 0xce0], 0
jne 0x41e073
movzx ecx, ax
push ecx
add edi, 2
push edi
call fcn.00491ad1
add esp, 8
test eax, eax
je 0x41e073
push 0
push 1
push 1
push 0
add eax, 2
call fcn.004771e0
add esp, 0x10
test eax, eax
jne 0x41e16d
mov dword [esp + 0x1c], 3
jmp 0x41e16d
cmp bl, 0x6a
jne 0x41e16d
cmp word [ebp], 0
mov esi, ebp
je 0x41e0da
movzx eax, word [esi]
cmp eax, 0x20
je 0x41e09f
cmp eax, 9
jne 0x41e0d1
movzx edx, word [esi + 2]
push edx
call fcn.00492c31
add esp, 4
cmp eax, 0x69
jne 0x41e0d1
movzx eax, word [esi + 4]
push eax
call fcn.00492c31
add esp, 4
cmp eax, 0x6e
jne 0x41e0d1
movzx eax, word [esi + 6]
cmp eax, 0x20
je 0x41e0da
cmp eax, 9
je 0x41e0da
add esi, 2
cmp word [esi], 0
jne 0x41e092
cmp word [esi], 0
mov dx, word [0x4c7978]
jne 0x41e10a
mov ecx, dword [esp + 0x10cf4]
push ecx
mov ecx, dword [esp + 0x1c]
push 0x4aa508
call fcn.00430c90
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 0x41e12d
lea esp, [esp]
cmp word [ebp + eax*2], dx
jne 0x41e128
inc ecx
dec eax
test eax, eax
jg 0x41e120
mov word [esi + 2], dx
cmp ecx, 1
jle 0x41e169
cmp ecx, 2
jle 0x41e15e
mov edx, dword [esp + 0x10cf4]
mov ecx, dword [esp + 0x18]
push edx
push 0x4aa548
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov eax, 0x20
mov word [esi + 4], ax
jmp 0x41e16d
mov word [esi + 4], dx
mov eax, dword [esp + 0x1c]
xor ebx, ebx
mov byte [esp + 0x28], 0
mov byte [esp + 0x20], 0
mov dword [esp + 0x24], ebx
cmp eax, ebx
je 0x41e18b
mov dword [esp + 0x34], eax
jmp 0x41e197
mov ecx, dword [esp + 0x30]
movsx edx, byte [ecx + 5]
mov dword [esp + 0x34], edx
xor esi, esi
mov dword [esp + 0x1c], ebx
cmp word [ebp], bx
je 0x41e366
jmp 0x41e1b0
mov ebx, dword [esp + 0x1c]
cmp ebx, dword [esp + 0x34]
jge 0x41e366
cmp ebx, 2
jne 0x41e221
mov al, byte [esp + 0x10cf8]
sub al, 0x18
cmp al, 3
ja 0x41e212
mov eax, dword [esp + 0x18]
push 0
lea ecx, [ebp + esi*2]
push ecx
lea edx, [esp + 0x2e8]
push edx
push eax
call fcn.0041ecf0
mov dword [esp + 0x24], eax
test eax, eax
je 0x41e212
lea edi, [esp + 0x2e0]
call fcn.0041ee10
mov byte [esp + 0x28], al
test al, al
jne 0x41e353
call fcn.0041ee50
mov byte [esp + 0x20], al
cmp byte [esp + 0x20], 0
jne 0x41e353
mov ebx, dword [esp + 0x1c]
lea ecx, [esp + ebx*4 + 0x38]
lea eax, [ebp + esi*2]
lea edx, [esp + ebx*4 + 0x90]
mov dword [esp + 0x8c], ecx
mov dword [ecx], eax
lea ecx, [esp + esi*2 + 0xce0]
mov dword [esp + 0x88], edx
mov dword [edx], ecx
mov edx, dword [esp + 0x34]
dec edx
cmp ebx, edx
je 0x41e361
mov dx, word [0x4c797c]
cmp word [eax], dx
jne 0x41e276
cmp word [ecx], 0
jne 0x41e276
movzx eax, word [eax + 2]
cmp eax, 0x20
je 0x41e29a
cmp eax, 9
je 0x41e29a
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
mov bl, byte [esp + 0x10cf8]
push 0xffffffffffffffff
add ecx, 7
lea edi, [esp + 0x3c]
call fcn.0041ee90
add esp, 4
test al, al
je 0x41e2ba
movzx ecx, word [0x4c7978]
lea eax, [esp + 0xce0]
push eax
push ecx
mov eax, esi
mov ecx, ebp
call fcn.00479800
add esp, 8
mov esi, eax
jmp 0x41e2eb
movzx eax, word [ebp + esi*2]
test ax, ax
je 0x41e2eb
mov cx, word [0x4c7978]
jmp 0x41e2d0
cmp ax, cx
jne 0x41e2e0
cmp word [esp + esi*2 + 0xce0], 0
je 0x41e2eb
movzx eax, word [ebp + esi*2 + 2]
inc esi
test ax, ax
jne 0x41e2d0
cmp word [ebp + esi*2], 0
je 0x41e33d
mov eax, dword [esp + 0x88]
mov ecx, dword [eax]
xor edx, edx
mov word [ebp + esi*2], dx
mov edx, dword [esp + 0x8c]
mov edi, dword [edx]
push ecx
call fcn.004153b0
inc esi
lea edx, [esp + 0xce4]
add esp, 4
lea eax, [ebp + esi*2]
sub edx, ebp
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x41e330
cmp ecx, 9
jne 0x41e33d
cmp word [edx + eax], 0
jne 0x41e33d
inc esi
add eax, 2
jmp 0x41e323
inc dword [esp + 0x1c]
cmp word [ebp + esi*2], 0
jne 0x41e1b0
mov ebx, dword [esp + 0x1c]
jmp 0x41e366
mov ebx, dword [esp + 0x1c]
lea eax, [ebp + esi*2]
mov dword [esp + 0x2c], eax
jmp 0x41e366
inc ebx
mov dword [esp + 0x1c], ebx
mov ecx, dword [esp + 0x30]
mov al, byte [ecx + 4]
movsx esi, al
cmp ebx, esi
jge 0x41e3ca
cmp al, 1
mov eax, 0x4aa5b8
jg 0x41e382
mov eax, 0x4a4910
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [edx]
push esi
push eax
push 0x4aa5c0
mov esi, 0x400
lea edi, [esp + 0x4f0]
call fcn.00477380
add esp, 0x10
mov ecx, dword [esp + 0x10cf4]
push ecx
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x4e4]
push edx
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
xor eax, eax
cmp byte [esp + 0x10cf8], 0x74
jne 0x41e3d8
mov esi, ebx
test esi, esi
jle 0x41e3ef
lea esp, [esp]
mov ecx, dword [esp + eax*4 + 0x38]
inc eax
cmp word [ecx], 0
je 0x41e412
cmp eax, esi
jl 0x41e3e0
mov cl, byte [esp + 0x10cfc]
test cl, cl
je case.default.0x41e40b
movzx eax, cl
dec eax
cmp eax, 0xc
ja case.default.0x41e40b
jmp dword [eax*4 + 0x41ecb0]
mov edx, dword [esp + 0x30]
push eax
mov eax, dword [edx]
push eax
push 0x4aa610
mov esi, 0x400
lea edi, [esp + 0x4ec]
call fcn.00477380
add esp, 0xc
jmp 0x41e3a4
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x90]
push eax
mov dword [esp + ebx*4 + 0x3c], 0x4aa670
mov dword [esp + ebx*4 + 0x94], 0
inc ebx
push ebx
lea ecx, [esp + 0x40]
push ecx
push 0x8b
push edx
call fcn.0041efb0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x3c]
lea eax, [esp + 0x90]
push eax
push 2
lea ecx, [esp + 0x40]
push ecx
push 0x8b
mov ebx, 0x4aa670
push edi
mov dword [esp + 0x50], ebx
mov dword [esp + 0xa8], 0
call fcn.0041efb0
test eax, eax
je 0x41d08c
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x98]
mov dword [esp + 0x90], eax
xor eax, eax
mov dword [esp + 0x9c], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x98], eax
mov dword [esp + 0xa0], eax
lea eax, [esp + 0x90]
push eax
push 5
mov dword [esp + 0x44], ecx
lea ecx, [esp + 0x40]
push ecx
push 0x8e
push edi
mov dword [esp + 0x54], esi
mov dword [esp + 0xa8], edx
mov dword [esp + 0x5c], ebx
call fcn.0041efb0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x90]
push edx
push ebx
lea eax, [esp + 0x40]
push eax
push 1
push ecx
call fcn.0041efb0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x90]
push edx
push ebx
lea eax, [esp + 0x40]
push eax
push 4
push ecx
call fcn.0041efb0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x90]
push edx
push ebx
lea eax, [esp + 0x40]
push eax
push 5
push ecx
call fcn.0041efb0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x90]
push edx
push ebx
lea eax, [esp + 0x40]
push eax
push 6
push ecx
call fcn.0041efb0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x90]
push edx
push ebx
lea eax, [esp + 0x40]
push eax
push 7
push ecx
call fcn.0041efb0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
mov byte [esp + 0x10cf8], 0x12
jmp case.default.0x41e40b
mov byte [esp + 0x10cf8], 0x13
jmp case.default.0x41e40b
mov byte [esp + 0x10cf8], 0x14
jmp case.default.0x41e40b
mov byte [esp + 0x10cf8], 0x15
jmp case.default.0x41e40b
mov byte [esp + 0x10cf8], 0x16
jmp case.default.0x41e40b
mov byte [esp + 0x10cf8], 0x17
test ebx, ebx
je 0x41e724
cmp byte [esp + 0x28], 0
jne 0x41e724
cmp byte [esp + 0x20], 0
jne 0x41e724
mov al, byte [esp + 0x10cf8]
lea edx, [eax - 0x12]
cmp dl, 0xe
ja 0x41e724
cmp al, 0x17
ja 0x41e673
sub cl, 6
cmp cl, 5
ja 0x41e724
mov esi, dword [esp + ebx*4 + 0x34]
mov eax, esi
sub eax, ebp
sar eax, 1
movzx ecx, word [ebp + eax*2]
test cx, cx
je 0x41e724
mov dx, word [0x4c7978]
cmp cx, dx
jne 0x41e6a2
cmp word [esp + eax*2 + 0xce0], 0
je 0x41e6af
movzx ecx, word [ebp + eax*2 + 2]
inc eax
test cx, cx
jne 0x41e692
jmp 0x41e724
lea ebx, [ebp + eax*2]
movzx ecx, word [ebp + eax*2 + 2]
inc eax
cmp ecx, 0x20
je 0x41e6b3
cmp ecx, 9
je 0x41e6b3
mov ecx, dword [esp + 0x18]
lea eax, [ebp + eax*2]
push 0
push eax
mov dword [esp + 0x34], eax
lea eax, [esp + 0x2e8]
push eax
push ecx
call fcn.0041ecf0
mov dword [esp + 0x24], eax
test eax, eax
je 0x41e718
lea edi, [esp + 0x2e0]
call fcn.0041ee10
mov byte [esp + 0x28], al
test al, al
jne 0x41e709
call fcn.0041ee50
mov byte [esp + 0x20], al
test al, al
je 0x41e718
xor edx, edx
or eax, 0xffffffff
mov word [ebx], dx
call fcn.00415420
jmp 0x41e720
mov dword [esp + 0x2c], 0
mov ebx, dword [esp + 0x1c]
mov al, byte [esp + 0x10cf8]
mov edi, dword [esp + 0x18]
cmp al, 0x69
je 0x41e737
cmp al, 0x6b
jne 0x41e746
cmp ebx, 1
jne 0x41e746
mov ecx, dword [esp + 0x38]
cmp word [ecx], 0
jne 0x41e756
cmp al, 0x6a
je 0x41e752
cmp al, 0x70
je 0x41e752
cmp al, 0x73
jne 0x41e7c5
test ebx, ebx
je 0x41e7c5
mov esi, dword [esp + ebx*4 + 0x34]
mov eax, esi
lea edx, [eax + 2]
nop
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41e760
sub eax, edx
sar eax, 1
cmp word [esi + eax*2 - 2], 0x7b
jne 0x41e7c5
xor edx, edx
mov word [esi + eax*2 - 2], dx
or eax, 0xffffffff
mov byte [esp + 0x16], 1
call fcn.00415420
test eax, eax
jne 0x41e7c5
mov al, byte [esp + 0x10cf8]
cmp al, 0x69
je 0x41e7c3
cmp al, 0x70
je 0x41e7c3
cmp al, 0x73
je 0x41e7c3
mov eax, dword [esp + 0x10cf4]
push eax
push 0x4aa0e0
mov ecx, edi
call fcn.00430c90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c
xor ebx, ebx
mov eax, dword [esp + 0x10cf8]
lea ecx, [esp + 0x90]
push ecx
push ebx
lea edx, [esp + 0x40]
push edx
push eax
push edi
call fcn.0041efb0
test eax, eax
je 0x41d08c
cmp byte [esp + 0x16], 0
je 0x41e806
push 0
push 0
push 0
push 0x75
push edi
call fcn.0041efb0
test eax, eax
je 0x41d08c
mov ebx, dword [esp + 0x2c]
test ebx, ebx
je 0x41d0c8
mov esi, dword [esp + 0x24]
test esi, esi
jne 0x41e822
push esi
push esi
push esi
push esi
push esi
push esi
jmp 0x41e858
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x41e827
sub eax, edx
mov ecx, esi
sar eax, 1
push eax
sub ecx, ebp
sar ecx, 1
lea edx, [esp + ecx*2 + 0xce4]
mov ecx, dword [esp + 0x24]
push edx
mov edx, dword [esp + 0x30]
push esi
lea eax, [esp + 0x2ec]
push eax
push ecx
push edx
mov ecx, edi
push ebx
call fcn.0041ca00
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10ce0
ret 0x1c