Function at 0x4603b0
Capabilities:
Encode data using base64
Parse credit card information

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x6e8
mov eax, dword [ebx + 0x14]
push esi
push edi
mov edi, ecx
mov ecx, dword [ebx + 8]
mov eax, dword [eax]
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x50], edi
mov esi, dword [edi + 8]
lea eax, [ecx*8]
sub eax, ecx
shl eax, 2
mov dword [ebp - 0x74], eax
mov eax, dword [esi + eax + 0x18]
shl eax, 2
call fcn.004baba0
cmp byte [edi], 1
mov eax, 0x4d3ee8
mov dword [ebp - 0x5c], esp
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x68], 0x4df66c
mov dword [ebp - 0x6c], eax
jne 0x460425
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x70], eax
jmp 0x46042c
mov dword [ebp - 0x70], 0
mov ecx, dword [ebp - 0x74]
mov eax, dword [esi + ecx + 0x14]
shl eax, 2
call fcn.004baba0
mov eax, dword [ebp - 0x74]
xor edi, edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 4], edi
mov dword [ebp - 0x58], edi
mov eax, dword [esi + eax + 0x10]
mov esi, dword [ebx + 0x10]
mov dword [ebp - 8], eax
cmp dword [eax + 8], 0x4b
je 0x462131
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x44], eax
nop dword [eax]
mov eax, 0x10
mov dword [ebp - 0x1c], edi
call fcn.004badd0
mov edx, dword [ebp - 8]
mov edi, esp
mov dword [ebp - 0x14], edi
mov esi, dword [edx]
mov eax, dword [edx + 4]
mov dword [edi], esi
mov dword [edi + 4], eax
mov eax, dword [edx + 8]
mov dword [ebp - 0x2c], esi
mov dword [edi + 8], eax
cmp eax, 8
jge 0x4608ee
cmp eax, 6
jne 0x460611
mov eax, dword [ebp - 4]
test eax, eax
je case.default.0x461236
mov ecx, dword [ebp - 0x10]
dec eax
mov dword [ebp - 4], eax
mov esi, dword [ecx + eax*4]
mov eax, dword [esi + 8]
cmp eax, 5
jne 0x4604cb
mov ecx, dword [esi]
jmp 0x4604ec
cmp eax, 4
jne 0x460517
mov eax, dword [esi]
cmp byte [eax + 0x17], 0
jne 0x4604e0
mov ecx, dword [eax + 0xc]
call fcn.004053d0
test byte [eax + 0x15], 0x40
je 0x4604ea
mov ecx, dword [eax]
jmp 0x4604ec
xor ecx, ecx
mov dword [ebp - 0x34], ecx
test ecx, ecx
je 0x460517
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
call eax
cmp eax, dword [0x4eff04]
jne 0x4620db
mov esi, dword [ebp - 0x34]
lea eax, [edi + 4]
add esi, 8
mov dword [ebp - 0xc], eax
jmp 0x460597
lea eax, [ebp - 0x4c]
mov ecx, esi
push eax
lea edx, [ebp - 0x6e8]
call fcn.00456e00
mov ecx, dword [ebp - 0x4c]
add esp, 4
mov edx, eax
mov dword [ebp - 0x2c], edx
test ecx, ecx
je 0x462167
cmp dword [edi + 4], 3
lea esi, [edi + 4]
push 0
push 0
mov dword [ebp - 0xc], esi
mov eax, 0x103
push 0
mov esi, 3
cmovge eax, esi
push eax
push ecx
push edx
mov ecx, 0x4f0050
call fcn.00446bf0
mov esi, eax
test esi, esi
jne 0x460594
mov edx, dword [ebp - 0xc]
mov eax, dword [edx]
cmp eax, 1
jne 0x46057f
add dword [ebp - 8], 0x10
push esi
jmp 0x460fa2
cmp eax, 2
jne 0x4620f5
mov dword [edi + 8], 3
jmp 0x460fa9
lea eax, [edi + 4]
mov edx, dword [eax]
cmp edx, 3
jl 0x460603
mov al, byte [esi + 0x17]
jne 0x4605bd
test al, al
jne 0x4605b5
mov ecx, dword [esi + 0xc]
call fcn.004053d0
cmp byte [eax + 0x17], 1
jmp 0x4605e5
mov eax, esi
cmp byte [eax + 0x17], 1
jmp 0x4605e5
test al, al
jne 0x4605cb
mov ecx, dword [esi + 0xc]
call fcn.004053d0
jmp 0x4605cd
mov eax, esi
mov cl, byte [eax + 0x17]
cmp cl, 2
je 0x4605e2
cmp cl, 3
jne 0x460603
mov eax, dword [eax]
cmp dword [eax + 4], 0
jne 0x460603
cmp edx, 5
je 0x460603
mov eax, dword [ebp - 0x50]
mov ecx, 0x4f0050
push edx
push esi
mov dword [0x4f068c], eax
call fcn.0040dbb0
test eax, eax
je 0x4620cc
mov edx, dword [ebp - 0xc]
mov dword [edi], esi
mov dword [edi + 8], 4
jmp 0x460626
mov ecx, dword [ebp - 4]
lea edx, [edi + 4]
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], ecx
cmp eax, 4
jne 0x460fa9
mov edx, dword [edx]
mov eax, esi
cmp edx, 3
jl 0x460638
cmp edx, 5
jne 0x460fa9
mov cl, byte [esi + 0x17]
test cl, cl
jne 0x460658
mov ecx, dword [esi + 0xc]
lea eax, [esi + 0xc]
mov dword [ebp - 0x34], eax
call fcn.004053d0
mov cl, byte [esi + 0x17]
mov dword [ebp - 0x2c], eax
lea eax, [esi + 0xc]
jmp 0x460661
add eax, 0xc
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x34], eax
mov edi, dword [ebp - 0x2c]
cmp byte [edi + 0x17], 3
mov edi, dword [ebp - 0x14]
jne 0x4607f5
test edx, edx
je 0x46067e
cmp edx, 2
jne 0x4607f5
lea edx, [ebp - 0x4e8]
mov dword [ebp - 0xc8], 0x4d3ee8
test cl, cl
mov dword [ebp - 0xc4], 0xffffffff
mov dword [ebp - 0xb8], edx
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xac], 1
mov dword [ebp - 0xc0], 1
jne 0x4606d0
push ecx
mov ecx, dword [eax]
call fcn.0048a5d0
jmp 0x4606dd
mov eax, dword [esi]
push dword [esi + 0x18]
push ecx
mov eax, dword [eax]
call eax
add esp, 8
mov ecx, dword [ebp - 0xac]
test ecx, ecx
je 0x46218a
cmp ecx, 8
je 0x46218a
mov ecx, dword [ebp - 0xc0]
mov esi, dword [ebp - 0xc4]
test ecx, ecx
jne 0x4607dc
test esi, esi
je 0x4607dc
cmp esi, 0xffffffff
jne 0x46072f
mov esi, dword [ebp - 0xc8]
lea ecx, [esi + 2]
nop
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x460720
sub esi, ecx
sar esi, 1
mov eax, dword [ebp - 0xc8]
lea ecx, [ebp - 0x4e8]
cmp eax, ecx
je 0x46076e
cmp dword [ebp - 0xb4], 0
je 0x460755
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x5c]
mov dword [edx + ecx*4], edi
inc ecx
mov dword [ebp - 0x40], ecx
mov dword [edi], eax
mov eax, dword [ebp - 0xc]
mov dword [edi + 8], 0
mov dword [eax], esi
mov eax, dword [ebp - 4]
mov dword [ebp - 4], eax
jmp 0x460fac
mov eax, dword [ebx + 0x18]
lea edx, [esi + 1]
mov ecx, dword [ebp - 0x48]
sub ecx, dword [eax]
mov eax, dword [ebx + 0x1c]
sar ecx, 1
mov eax, dword [eax]
sub eax, ecx
cmp edx, eax
ja 0x460796
mov eax, dword [ebp - 0x48]
mov ecx, eax
mov dword [ebp - 0x2c], ecx
lea eax, [eax + edx*2]
mov dword [ebp - 0x48], eax
jmp 0x4607a9
lea eax, [edx + edx]
call fcn.004baba0
lea eax, [esi + 1]
mov dword [ebp - 0x2c], esp
add dword [ebp - 0x58], eax
mov ecx, esp
lea eax, [esi*2 + 2]
push eax
push dword [ebp - 0xc8]
push ecx
call fcn.004a20f0
mov eax, dword [ebp - 0x2c]
add esp, 0xc
mov dword [edi], eax
mov eax, dword [ebp - 0xc]
mov dword [edi + 8], 0
mov dword [eax], esi
mov eax, dword [ebp - 4]
mov dword [ebp - 4], eax
jmp 0x460fac
mov eax, dword [ebp - 0xc8]
mov dword [edi], eax
mov eax, dword [ebp - 4]
mov dword [edi + 4], esi
mov dword [edi + 8], ecx
mov dword [ebp - 4], eax
jmp 0x460fac
test cl, cl
jne 0x460805
mov ecx, dword [eax]
call fcn.004053d0
mov cl, byte [esi + 0x17]
jmp 0x460807
mov eax, esi
test byte [eax + 0x15], 2
je 0x460fa9
test cl, cl
jne 0x460824
mov ecx, dword [ebp - 0x34]
mov ecx, dword [ecx]
call fcn.004053d0
mov cl, byte [esi + 0x17]
jmp 0x460826
mov eax, esi
cmp byte [eax + 0x17], 2
jne 0x4608b2
test cl, cl
jne 0x460840
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax]
call fcn.004053d0
mov esi, eax
and byte [esi + 0x15], 0xfd
lea eax, [ebp - 0x2c8]
mov dword [ebp - 0x2e0], 0
mov dword [ebp - 0x2e8], 0x4d3ee8
mov dword [ebp - 0x2e4], 0xffffffff
mov dword [ebp - 0x2d8], eax
mov dword [ebp - 0x2d4], 0
mov dword [ebp - 0x2cc], 1
mov esi, dword [esi]
push esi
mov eax, dword [esi]
call dword [eax + 4]
push 0
push 0
lea eax, [ebp - 0x2e8]
mov ecx, esi
push eax
call fcn.0047c500
mov ecx, eax
cmp ecx, 1
jne 0x46218a
mov eax, dword [esi]
push esi
call dword [eax + 8]
jmp 0x460fa9
test edx, edx
je 0x462199
cmp edx, 2
jne 0x4608cb
mov dword [edi + 8], 3
jmp 0x460fa9
mov eax, dword [ebp - 4]
cmp edx, 5
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
jne 0x460fb2
mov dword [ecx + eax*4], edi
add edx, 0x10
mov edi, eax
inc edi
mov dword [ebp - 4], edi
jmp 0x46207e
cmp eax, 0x48
jne 0x460eab
mov eax, dword [esi]
mov ecx, dword [esi + 0xc]
mov edx, dword [ebp - 4]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x1c], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x34], ecx
cmp ecx, edx
jg case.default.0x461236
mov esi, dword [ebp - 0x10]
mov dword [ebp - 0x54], edx
sub edx, ecx
mov dword [ebp - 4], edx
lea ecx, [esi + edx*4]
mov dword [ebp - 0x20], ecx
test eax, 0x20000
je 0x4609a0
test edx, edx
je case.default.0x461236
mov ecx, dword [esi + edx*4 - 4]
dec edx
and eax, 0xfffdffff
mov dword [ebp - 4], edx
mov dword [ebp - 0xc], eax
cmp dword [ecx + 8], 3
je 0x4609a0
push 0
lea edx, [ebp - 0x6e8]
call fcn.00456e00
mov edx, eax
add esp, 4
mov dword [ebp - 0x1c], edx
cmp word [edx], 0
mov edx, dword [ebp - 4]
jne 0x4609a0
mov esi, dword [esi + edx*4]
mov ecx, dword [esi + 8]
cmp ecx, 5
jne 0x46097c
mov eax, esi
jmp 0x460997
cmp ecx, 4
jne 0x4609a0
mov eax, dword [esi]
cmp byte [eax + 0x17], 0
jne 0x460991
mov ecx, dword [eax + 0xc]
call fcn.004053d0
test byte [eax + 0x15], 0x40
je 0x4609a0
cmp dword [eax], 0
jne 0x4621ac
mov esi, dword [ebp - 0x14]
test esi, esi
je 0x4609c4
mov eax, 0x10
call fcn.004badd0
mov edx, esp
mov dword [ebp - 0x24], esp
mov dword [edx + 8], 5
mov dword [edx], esi
jmp 0x460a8c
test edx, edx
je case.default.0x461236
mov eax, dword [ebp - 0x10]
dec edx
mov dword [ebp - 4], edx
mov edx, dword [eax + edx*4]
mov dword [ebp - 0x24], edx
mov ecx, dword [edx + 8]
cmp ecx, 5
jne 0x4609e5
mov eax, edx
jmp 0x460a03
cmp ecx, 4
jne 0x460a0d
mov eax, dword [edx]
cmp byte [eax + 0x17], 0
jne 0x4609fd
mov ecx, dword [eax + 0xc]
call fcn.004053d0
mov ecx, dword [edx + 8]
test byte [eax + 0x15], 0x40
je 0x460a4d
mov esi, dword [eax]
test esi, esi
jne 0x460a8c
cmp ecx, 7
jne 0x460a4d
mov eax, dword [0x4ea828]
mov eax, dword [eax + 0x18]
mov ecx, dword [eax + 0x38]
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
call eax
mov ecx, dword [0x4ea828]
mov esi, eax
mov edx, dword [ebp - 0x24]
or dword [ebp - 0xc], 0x40
mov ecx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x34]
mov ecx, dword [ecx]
mov dword [edx + 8], 4
mov dword [edx], ecx
mov dword [edx + 4], 0
jmp 0x460a84
mov ecx, edx
call fcn.004577f0
sub eax, 0
je 0x460a77
sub eax, 1
je 0x460a6f
sub eax, 1
je 0x460a67
xor esi, esi
jmp 0x460a7d
mov esi, dword [0x4eff70]
jmp 0x460a7d
mov esi, dword [0x4eff6c]
jmp 0x460a7d
mov esi, dword [0x4eff68]
or dword [ebp - 0xc], 0x20
mov edx, dword [ebp - 0x24]
test esi, esi
je case.default.0x461236
lea eax, [ebp - 0x4e8]
mov dword [ebp - 0x98], 0
mov dword [ebp - 0xa0], 0x4d3ee8
mov dword [ebp - 0x9c], 0xffffffff
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x84], 1
mov eax, dword [edx + 8]
mov dword [ebp - 0x14], eax
cmp eax, 4
jne 0x460ade
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov edx, dword [ebp - 0x24]
push dword [ebp - 0x34]
mov ecx, dword [ebp - 0xc]
push dword [ebp - 0x20]
push edx
push dword [ebp - 0x1c]
push ecx
test ecx, 0x10000
je 0x460b06
lea edx, [ebp - 0xa0]
mov ecx, esi
call fcn.00462a70
add esp, 0x14
jmp 0x460b16
mov eax, dword [esi]
lea ecx, [ebp - 0xa0]
push ecx
mov ecx, esi
mov eax, dword [eax + 0x1c]
call eax
cmp dword [ebp - 0x14], 4
mov dword [ebp - 0x2c], eax
jne 0x460b25
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov ecx, dword [ebp - 0x2c]
test ecx, ecx
je 0x46218a
cmp ecx, 4
je 0x460b46
cmp ecx, 8
je 0x46218a
mov edx, dword [ebp - 0x98]
jmp 0x460b5f
mov eax, dword [ebp - 0xc]
test eax, 0x200000
je 0x46222f
mov edx, 3
mov dword [ebp - 0x98], edx
cmp dword [0x4effd8], 0xffffffff
mov esi, dword [ebp - 0x50]
je 0x460b77
push esi
call fcn.004602c0
mov edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0xc]
mov dword [0x4f068c], esi
test eax, 0x40000
je 0x460b9b
test eax, 0x100000
je 0x460b93
cmp edx, 3
jne 0x460b9b
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 4], ecx
jmp 0x460b9e
mov ecx, dword [ebp - 4]
test al, 1
je 0x460be5
cmp edx, 5
jne 0x460bb3
mov eax, dword [ebp - 0xa0]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x8c]
test eax, eax
je 0x460bc6
push eax
call fcn.004a45b2
add esp, 4
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x20]
mov edx, dword [ecx + eax*4 - 4]
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov eax, dword [edx + 8]
mov dword [edi + 8], eax
jmp 0x460fa9
test edx, edx
je 0x460c36
cmp edx, 3
jne 0x460bf9
test eax, 0x100000
je 0x4621c6
mov eax, dword [ebp - 0xa0]
cmp edx, 5
mov ecx, dword [ebp - 0x9c]
mov dword [edi + 8], edx
mov edx, dword [ebp - 8]
mov dword [edi], eax
mov dword [edi + 4], ecx
jne 0x460c22
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x5c]
mov dword [eax + ecx*4], edi
inc ecx
mov dword [ebp - 0x40], ecx
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + eax*4], edi
mov edi, eax
inc edi
mov dword [ebp - 4], edi
jmp 0x46207e
mov edx, dword [ebp - 8]
test ecx, ecx
jne 0x460c58
cmp dword [edx + 0x18], 0x4b
jne 0x460c58
cmp byte [esi], 2
mov dword [ebp - 0xc], 1
je 0x4621fc
mov ecx, dword [ebp - 0x70]
jmp 0x460c9d
xor eax, eax
cmp dword [edx + 0x18], 0x14
mov dword [ebp - 0xc], eax
jne 0x460c98
test ecx, ecx
je 0x460c98
mov edx, dword [ebp - 0x10]
mov ecx, dword [edx + ecx*4 - 4]
cmp dword [ecx + 8], 4
jne 0x460c98
mov ecx, dword [ecx]
mov dword [ebp - 0x1c], ecx
cmp byte [ecx + 0x17], al
jne 0x460c90
mov ecx, dword [ecx + 0xc]
call fcn.004053d0
mov ecx, dword [ebp - 0x1c]
mov edx, eax
mov eax, dword [ebp - 0xc]
jmp 0x460c92
mov edx, ecx
cmp byte [edx + 0x17], 1
je 0x460ca0
xor ecx, ecx
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x1c], ecx
mov esi, dword [ebp - 0x9c]
mov edx, dword [ebp - 0xa0]
mov dword [ebp - 0x54], edx
cmp esi, 0xffffffff
jne 0x460cd0
mov esi, edx
lea eax, [esi + 2]
mov dword [ebp - 0x14], eax
nop dword [eax]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x460cc0
sub esi, dword [ebp - 0x14]
sar esi, 1
test ecx, ecx
je 0x460d65
mov eax, dword [ebp - 0x8c]
test eax, eax
je 0x460cf0
push dword [ebp - 0x9c]
push eax
call fcn.0048a800
jmp 0x460d2b
cmp edx, dword [0x4efe24]
jne 0x460d1a
cmp esi, 0x40
jb 0x460d1a
push esi
push edx
call fcn.0048a800
mov dword [0x4efe24], 0
mov dword [0x4efe20], 0
jmp 0x460d2b
push 0
push esi
push edx
call fcn.0048a0f0
test eax, eax
je 0x4620cc
cmp dword [ebp - 0xc], 0
jne 0x4622fd
dec dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
mov dword [edi], eax
add edx, 0x10
mov eax, dword [ebp - 4]
mov dword [edi + 8], 4
mov dword [edi + 4], 0
mov dword [ecx + eax*4], edi
mov edi, eax
inc edi
mov dword [ebp - 4], edi
jmp 0x46207e
cmp dword [ebp - 0x8c], 0
mov dword [edi + 8], 0
mov dword [edi + 4], esi
je 0x460d9d
cmp dword [ebp - 0xc], 0
je 0x460d89
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x462218
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x5c]
mov dword [eax + ecx*4], edi
inc ecx
mov dword [ebp - 0x40], ecx
mov dword [edi], edx
jmp 0x460fa9
test esi, esi
jne 0x460dac
mov dword [edi], 0x4d3ee8
jmp 0x460fa9
cmp edx, dword [0x4efe24]
je 0x460e03
mov eax, dword [ebp - 0xc]
xor al, 1
je 0x460d96
mov ecx, dword [ebp - 0x48]
lea eax, [esi + 1]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 0x18]
sub ecx, dword [eax]
mov eax, dword [ebx + 0x1c]
sar ecx, 1
mov eax, dword [eax]
sub eax, ecx
lea ecx, [esi + 1]
cmp ecx, eax
ja 0x460e2d
add esi, esi
push esi
push edx
push dword [ebp - 0x48]
call fcn.004a20f0
mov ecx, dword [ebp - 0x48]
add esp, 0xc
mov dword [edi], eax
mov eax, dword [ebp - 0x2c]
lea ecx, [ecx + eax*2]
mov eax, dword [edi]
mov dword [ebp - 0x48], ecx
xor ecx, ecx
mov word [esi + eax], cx
jmp 0x460fa9
cmp dword [ebp - 0xc], 0
jne 0x460d96
mov ecx, dword [ebp - 8]
add ecx, 0x18
mov eax, dword [ecx]
cmp eax, 0x4b
je 0x460d96
cmp eax, 0x48
je 0x460dbb
mov eax, dword [ecx + 0x10]
add ecx, 0x10
cmp eax, 0x4b
jne 0x460e16
mov dword [edi], edx
jmp 0x460fa9
cmp ecx, 0x1001
jae 0x460e6c
cmp dword [ebp - 0x58], 0x9c40
jae 0x460e6c
lea eax, [ecx + ecx]
call fcn.004baba0
mov eax, esp
add esi, esi
push esi
push dword [ebp - 0x54]
push eax
call fcn.004a20f0
mov dword [edi], eax
add esp, 0xc
mov eax, dword [ebp - 0x2c]
add dword [ebp - 0x58], eax
xor ecx, ecx
mov eax, dword [edi]
mov word [esi + eax], cx
jmp 0x460fa9
lea eax, [ecx + ecx]
push eax
call fcn.004a45cd
add esp, 4
mov dword [edi], eax
test eax, eax
je 0x462431
add esi, esi
push esi
push dword [ebp - 0x54]
push eax
call fcn.004a20f0
mov eax, dword [ebp - 0x40]
add esp, 0xc
mov ecx, dword [ebp - 0x5c]
mov dword [ecx + eax*4], edi
inc eax
mov dword [ebp - 0x40], eax
xor ecx, ecx
mov eax, dword [edi]
mov word [esi + eax], cx
jmp 0x460fa9
cmp eax, 0x22
jne 0x460eb7
mov edx, esi
jmp case.0x460f17.19
mov ecx, dword [ebp - 4]
test ecx, ecx
je case.default.0x461236
mov esi, dword [ebp - 0x10]
dec ecx
mov dword [ebp - 4], ecx
mov esi, dword [esi + ecx*4]
mov dword [ebp - 0x24], esi
cmp dword [esi + 8], 3
jne 0x460f08
cmp eax, 0x24
je case.0x460f17.19
cmp eax, 0x13
je case.0x460f17.19
cmp eax, 0xb
jne 0x460efa
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 4], edi
jmp 0x46207e
cmp eax, 0x14
jne case.default.0x461236
add eax, 0xfffffff5
jmp 0x460f10
add eax, 0xfffffff5
cmp eax, 0x38
ja case.0x460f17.12
movzx eax, byte [eax + 0x4626f8]
jmp dword [eax*4 + 0x4626e4]
xor eax, eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x7c], eax
jmp 0x460f38
lea edx, [ebp - 0x78]
mov ecx, esi
call fcn.00456c60
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x44], eax
mov edx, dword [edi + 8]
xor ecx, ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x2c], edx
lea ecx, [edx - 9]
cmp ecx, 0x3e
ja case.0x460f59.11
movzx eax, byte [ecx + 0x462758]
jmp dword [eax*4 + 0x462734]
mov ecx, esi
call fcn.00456b70
mov edx, dword [edi + 8]
xor ecx, ecx
cmp edx, 0x25
sete cl
cmp eax, ecx
jne 0x462078
mov eax, dword [edi]
cmp edx, 0x23
mov dword [ebp - 8], eax
mov edx, eax
je case.0x460f17.19
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 4], edi
jmp 0x46207e
mov ecx, esi
call fcn.00456b70
neg eax
sbb eax, eax
inc eax
push eax
mov ecx, edi
call fcn.00401650
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + eax*4], edi
mov edi, dword [ebp - 4]
inc edi
mov dword [ebp - 4], edi
jmp 0x46207e
mov eax, dword [ebp - 0x44]
cmp eax, 1
jne 0x460fe4
mov ecx, esi
call fcn.00456d70
neg eax
mov dword [edi], eax
mov eax, dword [ebp - 0x44]
adc edx, 0
neg edx
mov dword [edi + 8], eax
mov dword [edi + 4], edx
jmp 0x460fa9
cmp eax, 2
jne 0x462632
mov eax, dword [esi + 8]
cmp eax, 4
ja case.0x460ff5.3
jmp dword [eax*4 + 0x462798]
movsd xmm0, qword [esi]
jmp 0x46102e
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.004bb170
jmp 0x46102e
mov ecx, dword [esi]
call fcn.00451150
jmp 0x46102e
push dword [esi]
call fcn.004ae522
fstp qword [ebp - 0x18]
movsd xmm0, qword [ebp - 0x18]
add esp, 4
jmp 0x46102e
xorps xmm0, xmm0
xorps xmm0, xmmword [0x4e2020]
movsd qword [edi], xmm0
mov eax, dword [ebp - 0x44]
mov dword [edi + 8], eax
jmp 0x460fa9
cmp dword [ebp - 0x44], 0
je 0x462632
mov edx, edi
mov ecx, esi
call fcn.00457190
jmp 0x460fa9
cmp dword [esi + 8], 4
jne case.default.0x461236
mov eax, dword [edi + 4]
test eax, eax
je 0x4610c7
cmp eax, 3
je 0x461089
mov eax, dword [esi]
mov dword [edi + 8], 4
mov dword [edi], eax
mov dword [edi + 4], 3
jmp 0x460fa9
mov edx, dword [esi]
cmp byte [edx + 0x17], 0
jne 0x46109b
mov ecx, dword [edx + 0xc]
call fcn.004053d0
jmp 0x46109d
mov eax, edx
mov al, byte [eax + 0x16]
and al, 0x22
cmp al, 2
jne 0x4610b2
mov eax, dword [edi]
test eax, eax
je 0x4610b2
cmp dword [eax + 0x2c], 0
jne 0x4610c7
mov dword [edi + 8], 4
mov dword [edi], edx
mov dword [edi + 4], 3
jmp 0x460fa9
mov ecx, dword [esi]
call fcn.00489a00
mov dword [edi + 8], 5
mov dword [edi], eax
test eax, eax
je 0x462431
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x5c]
mov dword [ecx + eax*4], edi
inc eax
mov dword [ebp - 0x40], eax
jmp 0x460fa9
cmp dword [esi + 8], 4
jne case.default.0x461236
mov ecx, dword [ebp - 0x44]
test ecx, ecx
je 0x462632
cmp edx, 9
je 0x461115
cmp edx, 0x46
je 0x461115
or eax, 0xffffffff
jmp 0x46111a
mov eax, 1
movd xmm0, eax
mov dword [ebp - 0x34], eax
cvtdq2pd xmm0, xmm0
movsd qword [ebp - 0x18], xmm0
cmp ecx, 1
jne 0x461155
mov ecx, esi
call fcn.00456d70
mov ecx, eax
mov esi, edx
mov eax, dword [ebp - 0x34]
cdq
add eax, ecx
mov dword [edi + 4], esi
mov dword [edi], ecx
adc edx, esi
mov esi, dword [ebp - 0x24]
push edx
push eax
mov ecx, dword [esi]
call fcn.0041de90
jmp 0x461170
mov ecx, dword [esi]
call fcn.00451150
movsd xmm1, qword [ebp - 0x18]
addsd xmm1, xmm0
movsd qword [edi], xmm0
mov ecx, dword [esi]
call fcn.0041deb0
cmp dword [ebp - 0x2c], 0x46
jl 0x461039
mov edx, dword [esi]
cmp byte [edx + 0x17], 0
jne 0x46118c
mov ecx, dword [edx + 0xc]
call fcn.004053d0
jmp 0x46118e
mov eax, edx
cmp byte [eax + 0x17], 1
jne 0x4611a9
mov dword [edi + 8], 4
mov dword [edi], edx
mov dword [edi + 4], 0
jmp 0x460fa9
mov ecx, dword [ebp - 0x44]
cmp ecx, 1
jne 0x4611c2
mov eax, dword [ebp - 0x34]
cdq
add dword [edi], eax
mov dword [edi + 8], ecx
adc dword [edi + 4], edx
jmp 0x460fa9
movsd xmm0, qword [ebp - 0x18]
addsd xmm0, qword [edi]
mov dword [edi + 8], ecx
movsd qword [edi], xmm0
jmp 0x460fa9
cmp dword [ebp - 0x44], 1
jne 0x462632
mov ecx, esi
call fcn.00456d70
not eax
mov dword [edi + 8], 1
not edx
mov dword [edi], eax
mov dword [edi + 4], edx
jmp 0x460fa9
mov eax, dword [ebp - 4]
test eax, eax
je case.default.0x461236
mov ecx, dword [ebp - 0x10]
dec eax
mov dword [ebp - 4], eax
mov eax, dword [ecx + eax*4]
mov dword [ebp - 0xc], eax
mov ecx, dword [eax + 8]
cmp ecx, 3
je case.default.0x461236
add edx, 0xffffffec
cmp edx, 0xd
ja 0x461313
cmp ecx, 4
jne case.default.0x461236
jmp dword [edx*4 + 0x4627ac]
mov ecx, dword [eax]
push esi
call fcn.00489650
test eax, eax
je 0x4620cc
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx]
cmp byte [edx + 0x17], 0
jne 0x461262
mov ecx, dword [edx + 0xc]
call fcn.004053d0
jmp 0x461264
mov eax, edx
cmp byte [eax + 0x17], 1
jne 0x46128f
cmp dword [esi + 8], 3
jne 0x461279
mov eax, dword [ebp - 8]
cmp dword [eax + 0x18], 0x42
jne 0x46128f
mov eax, 4
mov dword [edi], edx
mov dword [edi + 4], 0
mov dword [edi + 8], eax
jmp 0x460fa9
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov eax, dword [esi + 8]
mov dword [edi + 8], eax
jmp 0x460fa9
mov dword [edi + 8], 0x3a
jmp 0x46130e
mov dword [edi + 8], 0x3b
jmp 0x46130e
mov dword [edi + 8], 0x3c
jmp 0x46130e
mov dword [edi + 8], 0x3d
jmp 0x46130e
mov ecx, dword [eax]
mov dword [ebp - 0x34], ecx
cmp dword [ebp - 0x44], 0
je 0x461ad0
lea edx, [ebp - 0x64]
mov ecx, eax
call fcn.00456c60
cmp dword [ebp - 0x64], 0
je 0x461ad0
mov edx, dword [edi + 8]
lea ecx, [edx - 0x28]
cmp ecx, 3
ja 0x46134a
cmp dword [ebp - 0x7c], 0
jne 0x46134a
test eax, eax
je 0x461ad0
cmp dword [ebp - 0x44], 1
jne 0x46171f
cmp dword [ebp - 0x64], 1
jne 0x46171f
cmp edx, 0x3d
je 0x46171f
mov ecx, esi
call fcn.00456d70
mov ecx, dword [ebp - 0xc]
mov esi, eax
mov dword [ebp - 0x20], edx
call fcn.00456d70
mov ecx, dword [edi + 8]
add ecx, 0xffffffd8
mov dword [ebp - 0xc], eax
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0x24], edx
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0x1c], 1
cmp ecx, 0x16
ja case.0x4613a3.48
jmp dword [ecx*4 + 0x4627e4]
add eax, esi
adc edx, dword [ebp - 0x20]
jmp 0x462021
sub eax, esi
sbb edx, dword [ebp - 0x20]
jmp 0x462021
mov ecx, dword [ebp - 0x20]
push ecx
push esi
push edx
push eax
call fcn.004bab20
jmp 0x462021
cmp eax, esi
jne 0x4613e7
cmp edx, dword [ebp - 0x20]
jne 0x4613e7
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x462024
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [edi + 4], ecx
jmp 0x462024
cmp eax, esi
jne 0x46141c
cmp edx, dword [ebp - 0x20]
jne 0x46141c
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [edi + 4], ecx
jmp 0x462024
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x462024
cmp edx, dword [ebp - 0x20]
jl 0x461445
jg 0x461436
cmp eax, esi
jbe 0x461445
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x462024
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [edi + 4], ecx
jmp 0x462024
cmp edx, dword [ebp - 0x20]
jg 0x461475
jl 0x461466
cmp eax, esi
jae 0x461475
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x462024
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [edi + 4], ecx
jmp 0x462024
cmp edx, dword [ebp - 0x20]
jl 0x4614a5
jg 0x461496
cmp eax, esi
jb 0x4614a5
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x462024
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [edi + 4], ecx
jmp 0x462024
cmp edx, dword [ebp - 0x20]
jg 0x4614d5
jl 0x4614c6
cmp eax, esi
ja 0x4614d5
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x462024
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [edi + 4], ecx
jmp 0x462024
and eax, esi
and edx, dword [ebp - 0x20]
jmp 0x462021
or eax, esi
or edx, dword [ebp - 0x20]
jmp 0x462021
xor eax, esi
xor edx, dword [ebp - 0x20]
jmp 0x462021
mov ecx, dword [ebp - 0x20]
test ecx, ecx
jl case.default.0x461236
jg case.default.0x461236
test esi, esi
jb case.default.0x461236
test ecx, ecx
jg case.default.0x461236
jl 0x461535
cmp esi, 0x3f
ja case.default.0x461236
cmp dword [edi + 8], 0x38
jne 0x461560
movq xmm1, qword [ebp - 0xa8]
movd xmm0, esi
psrlq xmm1, xmm0
movq qword [ebp - 0x18], xmm1
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [edi], eax
mov dword [edi + 4], edx
jmp case.0x4613a3.48
cmp dword [edi + 8], 0x36
jne 0x46158b
movq xmm1, qword [ebp - 0xa8]
movd xmm0, esi
psllq xmm1, xmm0
movq qword [ebp - 0x18], xmm1
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [edi], eax
mov dword [edi + 4], edx
jmp case.0x4613a3.48
mov ecx, esi
call fcn.004bafd0
mov dword [edi], eax
mov dword [edi + 4], edx
jmp case.0x4613a3.48
mov ecx, dword [ebp - 0x20]
mov eax, esi
or eax, ecx
je 0x46224f
push ecx
push esi
push edx
push dword [ebp - 0xc]
call fcn.004babd0
jmp 0x462021
or eax, edx
mov ecx, dword [ebp - 0x20]
jne 0x4615dc
test ecx, ecx
jl 0x46224f
jg 0x4615d2
test esi, esi
jb 0x46224f
mov eax, esi
or eax, ecx
je case.default.0x461236
test ecx, ecx
jl 0x46167d
jg 0x4615ee
test esi, esi
jb 0x46167d
mov eax, esi
or eax, ecx
mov eax, 1
jne 0x461600
xor edx, edx
jmp 0x462021
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x2c], 0
test ecx, ecx
jl 0x46166b
jg 0x461615
cmp esi, 1
jbe 0x46166b
mov edi, dword [ebp - 0x24]
mov eax, esi
mov dword [ebp - 0x20], ecx
and eax, 1
or eax, 0
je 0x46163a
push edi
push dword [ebp - 0xc]
push dword [ebp - 0x2c]
push dword [ebp - 0x54]
call fcn.004bab20
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0xc]
push edi
push eax
push edi
push eax
call fcn.004bab20
mov ecx, dword [ebp - 0x20]
mov edi, edx
shrd esi, ecx, 1
mov dword [ebp - 0xc], eax
shr ecx, 1
test ecx, ecx
ja 0x461618
jb 0x46165f
cmp esi, 1
ja 0x461618
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x24], edi
mov edi, dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
push edx
push dword [ebp - 0xc]
push dword [ebp - 0x2c]
push eax
call fcn.004bab20
jmp 0x462021
mov dword [ebp - 0x1c], 2
test edx, edx
jg 0x4616ef
mov eax, dword [ebp - 0xc]
jl 0x461691
test eax, eax
jae 0x4616ef
neg eax
mov dword [ebp - 0xc], eax
adc edx, 0
neg edx
mov dword [ebp - 0x24], edx
mov edx, ecx
mov ecx, esi
call fcn.004bb170
mov edx, dword [ebp - 0x24]
sub esp, 8
mov ecx, dword [ebp - 0xc]
movsd qword [esp], xmm0
call fcn.004bb170
sub esp, 8
movsd qword [esp], xmm0
call fcn.00426fb0
fstp qword [ebp - 0x18]
movsd xmm0, qword [ebp - 0x18]
and esi, 1
or esi, 0
movsd qword [edi], xmm0
je case.0x4613a3.48
xorps xmm0, xmmword [0x4e2020]
movsd qword [edi], xmm0
jmp case.0x4613a3.48
mov edx, ecx
mov ecx, esi
call fcn.004bb170
mov edx, dword [ebp - 0x24]
sub esp, 8
mov ecx, dword [ebp - 0xc]
movsd qword [esp], xmm0
call fcn.004bb170
sub esp, 8
movsd qword [esp], xmm0
call fcn.00426fb0
fstp qword [edi]
jmp case.0x4613a3.48
mov eax, dword [esi + 8]
cmp eax, 4
ja case.0x461727.3
jmp dword [eax*4 + 0x462840]
movsd xmm0, qword [esi]
jmp 0x461782
mov edx, dword [esi + 4]
mov ecx, dword [esi]
call fcn.004bb170
jmp 0x461782
mov ecx, dword [esi]
call fcn.00451150
jmp 0x461782
mov eax, dword [esi]
mov ecx, eax
mov dword [ebp - 0x14], eax
call fcn.00424af0
test al, al
je 0x46176a
mov ecx, dword [ebp - 0x14]
call fcn.00487070
mov ecx, eax
call fcn.004bb170
jmp 0x461782
push dword [ebp - 0x14]
call fcn.004ae522
fstp qword [ebp - 0x18]
movsd xmm0, qword [ebp - 0x18]
add esp, 4
jmp 0x461782
xorps xmm0, xmm0
mov edx, dword [ebp - 0xc]
movsd qword [ebp - 0x30], xmm0
mov eax, dword [edx + 8]
cmp eax, 4
ja case.0x461796.3
jmp dword [eax*4 + 0x462854]
movsd xmm1, qword [edx]
jmp 0x461809
mov ecx, dword [ebp - 0xc]
mov edx, dword [edx + 4]
mov ecx, dword [ecx]
call fcn.004bb170
mov edx, dword [ebp - 0xc]
movaps xmm1, xmm0
jmp 0x461809
mov ecx, dword [edx]
call fcn.00451150
mov edx, dword [ebp - 0xc]
movaps xmm1, xmm0
jmp 0x461809
mov eax, dword [edx]
mov ecx, eax
mov dword [ebp - 0x14], eax
call fcn.00424af0
test al, al
je 0x4617ee
mov ecx, dword [ebp - 0x14]
call fcn.00487070
mov ecx, eax
call fcn.004bb170
mov edx, dword [ebp - 0xc]
movaps xmm1, xmm0
jmp 0x461809
push dword [ebp - 0x14]
call fcn.004ae522
mov edx, dword [ebp - 0xc]
add esp, 4
fstp qword [ebp - 0x18]
movsd xmm1, qword [ebp - 0x18]
jmp 0x461809
xorps xmm1, xmm1
mov ecx, dword [edi + 8]
lea eax, [ecx - 0x28]
cmp eax, 7
ja 0x46181d
mov dword [ebp - 0x1c], 1
jmp 0x46182d
mov dword [ebp - 0x1c], 2
cmp eax, 0x16
ja case.0x461834.8
movzx eax, byte [eax + 0x462898]
jmp dword [eax*4 + 0x462868]
addsd xmm1, qword [ebp - 0x30]
movsd qword [edi], xmm1
jmp case.0x4613a3.48
subsd xmm1, qword [ebp - 0x30]
movsd qword [edi], xmm1
jmp case.0x4613a3.48
mulsd xmm1, qword [ebp - 0x30]
movsd qword [edi], xmm1
jmp case.0x4613a3.48
movsd xmm0, qword [ebp - 0x30]
ucomisd xmm0, qword [0x4e1e68]
lahf
test ah, 0x44
jnp 0x46224f
divsd xmm1, xmm0
movsd qword [edi], xmm1
jmp case.0x4613a3.48
ucomisd xmm1, qword [ebp - 0x30]
lahf
test ah, 0x44
jp 0x4618a3
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x462024
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [edi + 4], ecx
jmp 0x462024
ucomisd xmm1, qword [ebp - 0x30]
lahf
test ah, 0x44
jnp 0x4618d3
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x462024
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [edi + 4], ecx
jmp 0x462024
comisd xmm1, xmmword [ebp - 0x30]
jbe 0x4618ff
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x462024
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [edi + 4], ecx
jmp 0x462024
movsd xmm0, qword [ebp - 0x30]
comisd xmm0, xmm1
jbe 0x46192f
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x462024
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [edi + 4], ecx
jmp 0x462024
comisd xmm1, xmmword [ebp - 0x30]
jb 0x46195b
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x462024
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [edi + 4], ecx
jmp 0x462024
movsd xmm0, qword [ebp - 0x30]
comisd xmm0, xmm1
jb 0x46198b
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x462024
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [edi + 4], ecx
jmp 0x462024
movsd xmm2, qword [ebp - 0x30]
xorps xmm3, xmm3
ucomisd xmm1, xmm3
lahf
test ah, 0x44
jp 0x4619bd
comisd xmm3, xmm2
ja 0x46224f
xor ecx, ecx
comisd xmm3, xmm1
seta cl
test ecx, ecx
je 0x4619fb
movsd xmm0, qword [0x4e1ea0]
sub esp, 0x10
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm2
call fcn.00427040
fstp qword [ebp - 0x18]
movsd xmm0, qword [ebp - 0x18]
ucomisd xmm0, xmm3
lahf
test ah, 0x44
jp case.default.0x461236
ucomisd xmm1, xmm3
lahf
test ah, 0x44
jp 0x461a13
ucomisd xmm2, xmm3
lahf
test ah, 0x44
jnp case.default.0x461236
sub esp, 0x10
movsd qword [esp + 8], xmm2
test ecx, ecx
je 0x461a8c
xorps xmm1, xmmword [0x4e2020]
movsd qword [esp], xmm1
call fcn.00426fb0
movsd xmm0, qword [0x4e1eb0]
sub esp, 0x10
fstp qword [edi]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [ebp - 0x30]
movsd qword [esp], xmm0
call fcn.00427040
sub esp, 8
fstp qword [esp]
call fcn.00426fa0
fstp qword [ebp - 0x18]
movsd xmm0, qword [ebp - 0x18]
ucomisd xmm0, qword [0x4e1ea0]
lahf
test ah, 0x44
jp case.0x4613a3.48
movsd xmm0, qword [edi]
xorps xmm0, xmmword [0x4e2020]
movsd qword [edi], xmm0
jmp case.0x4613a3.48
movsd qword [esp], xmm1
call fcn.00426fb0
fstp qword [edi]
jmp case.0x4613a3.48
cmp ecx, 0x39
jg case.0x4613a3.48
cmp ecx, 0x33
jl case.0x4613a3.48
cmp dword [ebp - 0x64], 1
mov ecx, str.Integer
cmove edx, esi
mov esi, edx
call fcn.0040e110
mov esi, dword [ebx + 0x10]
dec eax
neg eax
sbb eax, eax
inc eax
jmp 0x46268b
mov edx, dword [edi + 8]
lea eax, [edx - 0x28]
cmp eax, 3
ja case.default.0x461adf
jmp dword [eax*4 + 0x4628b0]
mov eax, dword [esi + 8]
cmp eax, 5
jne 0x461af5
mov ecx, dword [esi]
mov dword [ebp - 0x1c], ecx
jmp 0x461b1e
cmp eax, 4
jne 0x461b17
mov eax, dword [esi]
cmp byte [eax + 0x17], 0
jne 0x461b0a
mov ecx, dword [eax + 0xc]
call fcn.004053d0
test byte [eax + 0x15], 0x40
je 0x461b17
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
jmp 0x461b1e
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 8]
cmp ecx, 5
jne 0x461b2d
mov ecx, dword [eax]
jmp 0x461b4e
cmp ecx, 4
jne 0x461b4c
mov eax, dword [eax]
cmp byte [eax + 0x17], 0
jne 0x461b42
mov ecx, dword [eax + 0xc]
call fcn.004053d0
test byte [eax + 0x15], 0x40
je 0x461b4c
mov ecx, dword [eax]
jmp 0x461b4e
xor ecx, ecx
cmp dword [ebp - 0x1c], 0
jne 0x461b58
test ecx, ecx
je case.default.0x461adf
cmp edx, 0x2a
je 0x461b76
cmp edx, 0x2b
je 0x461b76
xor eax, eax
mov edx, 1
cmp dword [ebp - 0x1c], ecx
setne al
xor eax, edx
jmp 0x460fa1
xor eax, eax
xor edx, edx
cmp dword [ebp - 0x1c], ecx
setne al
xor eax, edx
jmp 0x460fa1
lea eax, [ebp - 0x4c]
mov ecx, esi
push eax
lea edx, [ebp - 0x6e8]
call fcn.00456e00
mov ecx, dword [ebp - 0xc]
lea edx, [ebp - 0x4e8]
add esp, 4
mov esi, eax
lea eax, [ebp - 0x60]
push eax
call fcn.00456e00
mov ecx, dword [edi + 8]
add esp, 4
add ecx, 0xffffffd9
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 1
cmp ecx, 0xa
ja case.0x461bcb.44
jmp dword [ecx*4 + 0x4628c0]
push esi
push eax
call fcn.004a44b1
add esp, 8
test eax, eax
jne 0x461bef
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x462024
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [edi + 4], ecx
jmp 0x462024
mov ecx, dword [ebp - 0x60]
cmp ecx, dword [ebp - 0x4c]
jne 0x461c39
test ecx, ecx
je 0x461c2a
sub eax, esi
mov dword [ebp - 0x20], eax
mov ax, word [eax + esi]
cmp ax, word [esi]
jne 0x461c39
mov eax, dword [ebp - 0x20]
add esi, 2
sub ecx, 1
jne 0x461c16
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x462024
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [edi + 4], ecx
jmp 0x462024
push esi
push eax
call fcn.004a44b1
add esp, 8
test eax, eax
je 0x461c6c
xor ecx, ecx
mov eax, 1
mov dword [edi + 4], ecx
jmp 0x462024
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [edi + 4], ecx
jmp 0x462024
mov ecx, dword [ebp - 0x60]
cmp ecx, dword [ebp - 0x4c]
jne 0x46141c
test ecx, ecx
je 0x461cb8
sub eax, esi
mov dword [ebp - 0x20], eax
nop word [eax + eax]
mov ax, word [esi + eax]
cmp ax, word [esi]
jne 0x46141c
mov eax, dword [ebp - 0x20]
add esi, 2
sub ecx, 1
jne 0x461ca0
xorps xmm0, xmm0
movlpd qword [ebp - 0x18], xmm0
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x18]
mov dword [edi + 4], ecx
jmp 0x462024
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 8]
cmp ecx, 5
jne 0x461cdd
mov ecx, eax
jmp 0x461cfd
cmp ecx, 4
jne 0x461d06
mov ecx, dword [eax]
cmp byte [ecx + 0x17], 0
jne 0x461cf7
mov ecx, dword [ecx + 0xc]
call fcn.004053d0
mov ecx, eax
mov eax, dword [ebp - 0xc]
test byte [ecx + 0x15], 0x40
je 0x461d06
cmp dword [ecx], 0
jne 0x462273
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + 8]
cmp ecx, 5
je 0x461d2c
cmp ecx, 4
jne 0x461d35
mov eax, dword [eax]
cmp byte [eax + 0x17], 0
jne 0x461d26
mov ecx, dword [eax + 0xc]
call fcn.004053d0
test byte [eax + 0x15], 0x40
je 0x461d35
cmp dword [eax], 0
jne 0x46228f
mov edx, dword [ebp - 0x34]
test edx, edx
je 0x461d7f
cmp byte [edx + 0x17], 0
jne 0x461d4c
mov ecx, dword [edx + 0xc]
call fcn.004053d0
jmp 0x461d4e
mov eax, edx
cmp byte [eax + 0x17], 1
jne 0x461d7f
push dword [ebp - 0x4c]
mov ecx, edx
push esi
call fcn.0048a730
test eax, eax
je 0x4620cc
mov ecx, dword [ebp - 0x34]
mov dword [edi + 8], 4
mov dword [edi], ecx
mov dword [edi + 4], 0
jmp 0x460fa9
mov eax, dword [ebp - 0x4c]
add eax, dword [ebp - 0x60]
mov dword [ebp - 0x1c], eax
test edx, edx
jne 0x461ee5
mov ecx, dword [ebp - 0x70]
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 8]
test ecx, ecx
je 0x461db5
test eax, eax
jne 0x461db5
cmp dword [edx + 0x18], 0x4b
jne 0x461db5
mov eax, ecx
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0x24], eax
jmp 0x461e0d
cmp dword [edx + 0x18], 0x14
jne 0x461ee5
test eax, eax
je 0x461ee5
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + eax*4 - 4]
cmp dword [eax + 8], 4
jne 0x461ee5
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
cmp byte [eax + 0x17], 0
jne 0x461df2
mov ecx, dword [eax + 0xc]
call fcn.004053d0
mov ecx, eax
mov eax, dword [ebp - 0x24]
jmp 0x461df4
mov ecx, eax
cmp byte [ecx + 0x17], 1
jne 0x461ee5
mov dword [ebp - 0x2c], 0
test eax, eax
je 0x461ee5
push 0
mov ecx, eax
call fcn.0040725b
xor ecx, ecx
cmp eax, 0x4efe8c
cmovne ecx, eax
cmp ecx, dword [ebp - 0x20]
jne 0x461e79
push dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x24]
push esi
call fcn.0048a6b0
test eax, eax
je 0x461ee5
cmp dword [ebp - 0x2c], 0
jne 0x4622fd
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
dec eax
mov edx, dword [ebp - 8]
mov dword [ebp - 4], eax
add edx, 0x10
mov eax, dword [ecx + eax*4]
mov eax, dword [eax]
mov dword [edi], eax
mov eax, dword [ebp - 4]
mov dword [edi + 8], 4
mov dword [edi + 4], 0
mov dword [ecx + eax*4], edi
mov edi, eax
inc edi
mov dword [ebp - 4], edi
jmp 0x46207e
cmp ecx, esi
je 0x461ee5
mov ecx, dword [ebp - 0x24]
push 0
push dword [ebp - 0x1c]
push 0
call fcn.0048a0f0
test eax, eax
je 0x4620cc
mov ecx, dword [ebp - 0x24]
push 1
call fcn.0040725b
mov edx, eax
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0x14], edx
test eax, eax
je 0x461ebd
lea ecx, [eax + eax]
push ecx
push dword [ebp - 0x20]
push edx
call fcn.004a20f0
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x60]
lea eax, [eax*2 + 2]
push eax
lea eax, [edx + ecx*2]
push esi
push eax
call fcn.004a20f0
mov ecx, dword [ebp - 0x24]
add esp, 0xc
call fcn.0041dee0
jmp 0x461e39
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebp - 0x48]
sub ecx, dword [eax]
mov eax, dword [ebx + 0x1c]
sar ecx, 1
mov eax, dword [eax]
sub eax, ecx
mov ecx, dword [ebp - 0x1c]
inc ecx
cmp ecx, eax
ja 0x461f0b
mov eax, dword [ebp - 0x48]
mov dword [edi], eax
lea eax, [eax + ecx*2]
mov dword [ebp - 0x48], eax
jmp 0x461f54
cmp ecx, 0x1001
jae 0x461f31
cmp dword [ebp - 0x58], 0x9c40
jae 0x461f31
lea eax, [ecx + ecx]
call fcn.004baba0
mov eax, esp
mov dword [edi], eax
mov eax, dword [ebp - 0x1c]
inc eax
add dword [ebp - 0x58], eax
jmp 0x461f54
lea eax, [ecx + ecx]
push eax
call fcn.004a45cd
add esp, 4
mov dword [edi], eax
test eax, eax
je 0x462431
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x5c]
mov dword [ecx + eax*4], edi
inc eax
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x461f6b
add eax, eax
push eax
push dword [ebp - 0x20]
push dword [edi]
call fcn.004a20f0
add esp, 0xc
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x60]
lea eax, [eax*2 + 2]
push eax
mov eax, dword [edi]
push esi
lea eax, [eax + ecx*2]
push eax
call fcn.004a20f0
mov eax, dword [ebp - 0x1c]
add esp, 0xc
mov dword [edi + 4], eax
mov dword [ebp - 0x1c], 0
jmp case.0x4613a3.48
mov esi, dword [ebp - 0x24]
mov eax, dword [esi + 8]
cmp eax, 5
jne 0x461fa9
mov eax, dword [esi]
jmp 0x461fca
cmp eax, 4
jne 0x461fc8
mov eax, dword [esi]
cmp byte [eax + 0x17], 0
jne 0x461fbe
mov ecx, dword [eax + 0xc]
call fcn.004053d0
test byte [eax + 0x15], 0x40
je 0x461fc8
mov eax, dword [eax]
jmp 0x461fca
xor eax, eax
push 0
push 0x4ede1c
push 0x4ede04
push 0
push eax
call fcn.004bb5d8
add esp, 0x14
test eax, eax
je 0x462610
lea ecx, [ebp - 0x14]
push ecx
push str.Prototype
mov ecx, eax
call fcn.0047dec0
test eax, eax
je 0x462610
cmp dword [eax + 8], 5
jne 0x462610
mov edx, dword [eax]
test edx, edx
je 0x462610
mov ecx, dword [ebp - 0xc]
call fcn.00481d20
movzx eax, al
cdq
mov dword [edi + 4], edx
mov dword [edi], eax
mov esi, dword [ebp - 0x34]
mov eax, dword [ebp - 0x1c]
mov dword [edi + 8], eax
test esi, esi
je 0x460fa9
push edi
mov ecx, esi
call fcn.00489650
test eax, eax
je 0x4620cc
cmp byte [esi + 0x17], 0
jne 0x462057
mov ecx, dword [esi + 0xc]
call fcn.004053d0
jmp 0x462059
mov eax, esi
cmp byte [eax + 0x17], 1
jne 0x460fa9
mov dword [edi + 8], 4
mov dword [edi], esi
mov dword [edi + 4], 0
jmp 0x460fa9
mov edx, dword [ebp - 8]
mov edi, dword [ebp - 4]
mov eax, edx
add edx, 0x10
mov dword [ebp - 8], edx
cmp dword [eax + 0x18], 0x4b
jne 0x460470
cmp edi, 1
jne 0x46212e
mov eax, dword [ebp - 0x10]
mov esi, dword [eax]
mov eax, dword [ebp - 0x50]
mov al, byte [eax]
cmp al, 2
je 0x4622fd
cmp al, 7
je 0x4622fd
mov ecx, dword [ebp - 0x70]
test ecx, ecx
je 0x4622ac
push esi
call fcn.00489650
test eax, eax
jne 0x4622fd
mov ecx, dword [ebx + 0xc]
xor edx, edx
mov dword [ebp - 0x3c], edx
mov dword [ecx], edx
jmp 0x462302
mov ecx, str.String_or_VarRef
mov edx, esi
call fcn.0040e110
mov esi, dword [ebx + 0x10]
dec eax
neg eax
sbb eax, eax
inc eax
jmp 0x46268b
mov eax, dword [0x4ea828]
mov esi, dword [ebp - 0x2c]
cmp dword [eax + 0x18], 0
je 0x462124
push 0
push 0
push 0
push 1
push dword [ebp - 0x4c]
mov ecx, 0x4f0050
push esi
call fcn.00446bf0
mov dword [ebp - 0x68], str.This_dynamic_assignment_requires_a__global__declaration.
test eax, eax
jne 0x46212b
mov dword [ebp - 0x68], str.Variable_not_found.
mov dword [ebp - 0x6c], esi
mov esi, dword [ebx + 0x10]
mov ecx, dword [ebp - 0x6c]
mov eax, 0x4d3ee8
test ecx, ecx
cmovne eax, ecx
mov ecx, eax
cmp byte [0x4f071c], 0
je 0x462650
push 0
push dword [ebp - 0x50]
push 9
push ecx
push dword [ebp - 0x68]
mov ecx, 0x4f0050
call fcn.0040cc20
jmp 0x46268b
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x68], str.This_dynamic_variable_is_blank.
mov eax, dword [eax + 8]
mov eax, dword [ecx + eax + 8]
mov dword [ebp - 0x6c], eax
jmp 0x46212e
mov esi, dword [ebx + 0x10]
mov ecx, 0x4d3ee8
jmp 0x462140
mov eax, dword [ebx + 0xc]
xor edx, edx
mov dword [ebp - 0x3c], edx
mov dword [eax], ecx
jmp 0x462302
push esi
mov ecx, 0x4f0050
call fcn.0040eb20
mov esi, dword [ebx + 0x10]
jmp 0x46268b
mov ecx, 0x4d5cd4
mov edx, esi
call fcn.0040e110
mov esi, dword [ebx + 0x10]
dec eax
neg eax
sbb eax, eax
inc eax
jmp 0x46268b
test al, 3
jne 0x4621d5
cmp dword [ebp - 0x1c], 0
mov eax, dword [0x4eff5c]
je 0x4621da
mov eax, dword [0x4eff08]
push eax
push dword [edi + 4]
lea ecx, [ebp - 0xa0]
push str.No_value_was_returned.
call fcn.0040ddc0
mov eax, dword [ebp - 0x84]
mov esi, dword [ebx + 0x10]
jmp 0x46268b
mov eax, dword [ebp - 0x8c]
test eax, eax
je 0x4622fd
push eax
call fcn.004a45b2
add esp, 4
jmp 0x4622fd
mov dword [eax + 8], 0
mov dword [eax + 0x14], edx
mov dword [eax], edx
mov dword [eax + 4], esi
mov dword [ebp - 0x3c], edx
jmp 0x462302
push dword [ebp - 0x1c]
lea ecx, [ebp - 0xa0]
push eax
push dword [ebp - 0x24]
call fcn.0040df60
mov eax, dword [ebp - 0x84]
mov esi, dword [ebx + 0x10]
jmp 0x46268b
push dword [0x4eff30]
mov ecx, 0x4f0050
push dword [ebp - 0x50]
push 9
push 0
push str.Divide_by_zero.
call fcn.0040cc20
mov esi, dword [ebx + 0x10]
jmp 0x46268b
mov esi, eax
mov ecx, 0x4d5cd4
mov edx, esi
call fcn.0040e110
mov esi, dword [ebx + 0x10]
dec eax
neg eax
sbb eax, eax
inc eax
jmp 0x46268b
mov esi, dword [ebp - 0x24]
mov ecx, 0x4d5cd4
mov edx, esi
call fcn.0040e110
mov esi, dword [ebx + 0x10]
dec eax
neg eax
sbb eax, eax
inc eax
jmp 0x46268b
cmp al, 0xa
je 0x4625f2
cmp al, 0x12
je 0x4625f2
cmp al, 0x13
je 0x4625f2
mov edi, dword [ebx + 0x10]
test edi, edi
je case.default.0x4622db
mov eax, dword [esi + 8]
cmp eax, 5
ja case.default.0x4622db
jmp dword [eax*4 + 0x4628ec]
mov dword [edi + 8], eax
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [edi], eax
mov dword [edi + 4], ecx
cmp dword [esi + 8], 5
jne 0x4622fd
mov eax, dword [esi]
mov ecx, dword [eax]
push eax
call dword [ecx + 4]
mov edx, 0x4d3ee8
mov edi, dword [ebp - 0x40]
test edi, edi
je 0x4626d0
nop dword [eax]
mov eax, dword [ebp - 0x5c]
dec edi
mov eax, dword [eax + edi*4]
cmp dword [eax + 8], 0
mov edx, dword [eax]
push edx
jne 0x4626af
call fcn.004a45b2
add esp, 4
jmp 0x4626b4
mov edx, dword [esi]
cmp byte [edx + 0x17], 0
jne 0x462343
mov ecx, dword [edx + 0xc]
call fcn.004053d0
jmp 0x462345
mov eax, edx
test byte [eax + 0x15], 0x70
je case.default.0x4622db
push edi
mov ecx, edx
call fcn.00407150
cmp dword [edi + 8], 5
jne 0x4622fd
mov eax, dword [edi]
jmp 0x4622f7
mov ecx, dword [ebp - 0x40]
test ecx, ecx
je case.default.0x4622db
mov eax, dword [ebp - 0x5c]
cmp dword [eax + ecx*4 - 4], esi
jne case.default.0x4622db
mov edx, dword [esi]
dec ecx
mov eax, dword [esi + 4]
mov dword [ebp - 0x3c], edx
mov dword [edi + 8], 0
mov dword [edi + 0x14], edx
mov dword [edi], edx
mov dword [edi + 4], eax
mov dword [ebp - 0x40], ecx
jmp 0x462302
mov ecx, dword [esi + 8]
cmp ecx, 3
je 0x462649
mov edx, dword [ebx + 0x14]
mov eax, ecx
mov edi, dword [edx]
mov dword [ebp - 0x3c], edi
sub eax, 1
je 0x4625b8
sub eax, 1
je 0x462549
sub eax, 3
je 0x4621ac
mov edi, dword [esi]
mov dword [ebp - 0x64], edi
cmp ecx, 4
jne 0x4623e2
push 1
mov ecx, edi
call fcn.0040725b
mov ecx, dword [esi]
mov dword [ebp - 0x64], eax
call fcn.00407248
mov edx, eax
mov dword [ebp - 0x2c], eax
jmp 0x4623e8
mov edx, dword [esi + 4]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x50]
lea edi, [edx + 1]
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x54], edi
mov eax, dword [eax + 8]
mov ecx, dword [ecx + eax + 4]
mov eax, 0xff
cmp ecx, eax
cmovb ecx, eax
mov eax, dword [ebx + 0x24]
inc eax
add eax, ecx
cmp edi, eax
jbe 0x46250b
mov ecx, dword [ebx + 0x1c]
mov esi, dword [ecx]
sub esi, eax
add esi, edi
mov dword [ebp - 0x6c], esi
lea eax, [esi + esi]
push eax
call fcn.004a45cd
mov edi, eax
add esp, 4
test edi, edi
jne 0x462454
push dword [0x4eff1c]
mov ecx, 0x4f0050
push 0
push 0
push 0
push str.Out_of_memory.
call fcn.0040cc20
mov esi, dword [ebx + 0x10]
jmp 0x46268b
cmp esi, 0x400000
jbe 0x462462
inc dword [0x4efe1c]
mov eax, dword [ebx + 0x18]
mov ecx, dword [eax]
mov eax, dword [ebx + 0x14]
mov eax, dword [eax]
sub eax, ecx
sar eax, 1
je 0x462482
lea esi, [eax + eax]
push esi
push ecx
push edi
call fcn.004a20f0
add esp, 0xc
jmp 0x462484
xor esi, esi
mov edx, dword [ebx + 0x14]
lea eax, [edi + esi]
mov esi, dword [ebp - 0x2c]
add esi, esi
mov dword [ebp - 0x3c], eax
push esi
push dword [ebp - 0x64]
mov dword [edx], eax
push eax
call fcn.004a20f0
mov eax, dword [ebx + 0x14]
xor ecx, ecx
add esp, 0xc
mov eax, dword [eax]
mov word [esi + eax], cx
mov esi, dword [ebx + 0x18]
push dword [esi]
call fcn.004a45b2
mov eax, dword [ebx + 0x1c]
add esp, 4
mov eax, dword [eax]
cmp eax, 0x400000
jbe 0x4624cb
dec dword [0x4efe1c]
mov edx, dword [esi]
xor ecx, ecx
lea eax, [edx + eax*2]
mov dword [ebp - 0x14], eax
cmp dword [ebx + 8], ecx
jle 0x4624ff
mov esi, dword [ebx + 0x20]
nop dword [eax]
mov eax, dword [esi + ecx*4]
cmp eax, edx
jb 0x4624f6
cmp eax, dword [ebp - 0x14]
jae 0x4624f6
sub eax, edx
sar eax, 1
lea eax, [edi + eax*2]
mov dword [esi + ecx*4], eax
inc ecx
cmp ecx, dword [ebx + 8]
jl 0x4624e0
mov esi, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebp - 0x6c]
mov dword [esi], edi
mov dword [ecx], eax
jmp 0x462526
mov eax, dword [ebx + 0x14]
lea edi, [edx + edx]
push edi
push dword [ebp - 0x64]
mov esi, dword [eax]
push esi
call fcn.004a20f0
add esp, 0xc
xor eax, eax
mov word [esi + edi], ax
mov esi, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
test esi, esi
je 0x46253a
mov eax, dword [ecx]
mov dword [esi], eax
mov eax, dword [ebp - 0x2c]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x54]
mov edx, dword [ebp - 0x3c]
add eax, eax
add dword [ecx], eax
jmp 0x462302
movsd xmm0, qword [esi]
sub esp, 8
movsd qword [esp], xmm0
push str._.17g
push 0x100
push edi
call fcn.004868c0
add esp, 0x14
mov esi, eax
push 0x4e19e8
push edi
call fcn.004afaf4
add esp, 8
mov edx, edi
cmp eax, esi
jne 0x4625a7
lea ecx, [esi + 3]
cmp ecx, 0x100
jg 0x4625a7
movzx eax, word [edx + esi*2 - 2]
add eax, 0xffffffd0
cmp ax, 9
ja 0x4625a7
mov dword [edx + esi*2], 0x30002e
add esi, 2
xor eax, eax
mov word [edx + esi*2], ax
mov ecx, dword [ebx + 0x14]
lea eax, [esi*2 + 2]
add dword [ecx], eax
jmp 0x462302
push 0xa
push edi
push dword [esi + 4]
push dword [esi]
call fcn.004a8fdb
add esp, 0x10
lea edx, [eax + 2]
nop dword [eax + eax]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4625d0
mov ecx, dword [ebx + 0x14]
sub eax, edx
sar eax, 1
mov edx, edi
lea eax, [eax*2 + 2]
add dword [ecx], eax
jmp 0x462302
mov ecx, esi
call fcn.00456b70
test eax, eax
mov edx, 0x4d8f9c
mov ecx, 0x4d3ee8
cmove edx, ecx
mov dword [ebp - 0x3c], edx
jmp 0x462302
mov ecx, str.Class
mov edx, esi
call fcn.0040e110
mov esi, dword [ebx + 0x10]
dec eax
neg eax
sbb eax, eax
inc eax
jmp 0x46268b
cmp dword [ebp - 0x44], 0
mov esi, dword [ebp - 0x24]
cmovne esi, dword [ebp - 0xc]
mov ecx, str.Number
mov edx, esi
call fcn.0040e110
mov esi, dword [ebx + 0x10]
dec eax
neg eax
sbb eax, eax
inc eax
jmp 0x46268b
mov esi, edi
jmp 0x462131
cmp byte [0x4f071f], 0
je 0x462676
mov eax, dword [ebp - 0x50]
push dword [eax + 4]
movzx eax, word [eax + 2]
push eax
push ecx
push dword [ebp - 0x68]
mov ecx, 0x4f0050
call fcn.0040cb20
xor eax, eax
jmp 0x46268b
push 0
push dword [ebp - 0x50]
push ecx
push 9
push dword [ebp - 0x68]
mov ecx, 0x4f0050
call fcn.0040d820
mov ecx, dword [ebx + 0xc]
mov dword [ecx], eax
test eax, eax
je 0x4620cf
mov edx, dword [ebp - 0x3c]
test esi, esi
je 0x462302
mov dword [esi + 8], 3
jmp 0x462302
mov ecx, dword [edx]
call dword [ecx + 8]
test edi, edi
jne 0x462310
mov eax, dword [ebp - 0x3c]
lea esp, [ebp - 0x6f0]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x20
mov eax, edx
lea esp, [ebp - 0x6f0]
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x20