Function at 0x46516a
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc4
mov eax, dword [0x5b38f0]
xor eax, esp
mov dword [esp + 0xc0], eax
mov dword [esp + 0x68], edx
mov edx, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
movsx eax, byte [edx]
push edi
xor edi, edi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x14], esi
test eax, eax
je case.default.0x4653ff
mov dword [esp + 0x78], 0x586a10
mov dword [esp + 0x6c], 6
mov dword [esp + 0x7c], SysReAllocString
mov dword [esp + 0x64], 0x15e
mov dword [esp + 0x68], 0x64
movsd xmm4, qword [0x597140]
cmp eax, 0x25
je 0x465220
xor eax, eax
mov edi, edx
inc eax
inc edx
mov dword [esp + 0x2c], edx
movsx esi, byte [edx]
cmp esi, 0x25
je 0x4651ff
test esi, esi
je 0x4651fb
inc eax
inc edx
movsx esi, byte [edx]
cmp esi, 0x25
jne 0x4651ed
mov dword [esp + 0x2c], edx
push eax
mov edx, edi
call fcn.00465da2
pop ecx
test esi, esi
je case.default.0x4653ff
movsd xmm4, qword [0x597140]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
inc edx
movsx ecx, byte [edx]
test ecx, ecx
je 0x465d3b
xor al, al
mov byte [esp + 0x32], al
xor eax, eax
mov byte [esp + 0x1e], al
mov byte [esp + 0x1d], al
mov byte [esp + 0x1b], al
mov byte [esp + 0x33], al
mov byte [esp + 0x1f], al
mov eax, ecx
sub eax, 0x20
je 0x465287
dec eax
je 0x465280
dec eax
dec eax
je 0x465279
sub eax, 8
je 0x465272
dec eax
dec eax
je 0x46526b
sub eax, 3
jne 0x465294
mov byte [esp + 0x32], 1
jmp 0x46528c
mov byte [esp + 0x1f], 1
jmp 0x46528c
mov byte [esp + 0x33], 1
jmp 0x46528c
mov byte [esp + 0x1d], 1
jmp 0x46528c
mov byte [esp + 0x1e], 1
jmp 0x46528c
mov byte [esp + 0x1b], 1
inc edx
movsx ecx, byte [edx]
test ecx, ecx
jne 0x465248
xor eax, eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x20], eax
cmp ecx, 0x2a
jne 0x4652c5
mov eax, dword [esi]
add esi, 4
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], eax
test eax, eax
jns 0x4652bf
neg eax
mov byte [esp + 0x1f], 1
mov dword [esp + 0x20], eax
inc edx
movsx ecx, byte [edx]
jmp 0x4652e4
cmp ecx, 0x30
jl 0x4652e8
cmp ecx, 0x39
jg 0x4652e0
imul eax, eax, 0xa
add ecx, 0xffffffd0
add eax, ecx
inc edx
movsx ecx, byte [edx]
cmp ecx, 0x30
jge 0x4652ca
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], edx
cmp ecx, 0x2e
jne 0x46534f
mov eax, dword [esp + 0x2c]
xor edx, edx
inc eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], eax
movsx ecx, byte [eax]
cmp ecx, 0x2a
jne 0x465329
mov edx, dword [esi]
add esi, 4
mov dword [esp + 0x14], esi
mov dword [esp + 0x24], edx
test edx, edx
jns 0x46531b
neg edx
mov dword [esp + 0x24], edx
mov esi, dword [esp + 0x2c]
inc esi
mov dword [esp + 0x2c], esi
movsx ecx, byte [esi]
jmp 0x46535a
mov esi, dword [esp + 0x2c]
jmp 0x465348
cmp ecx, 0x39
jg 0x46535a
imul eax, edx, 0xa
lea edx, [ecx - 0x30]
add edx, eax
inc esi
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], esi
movsx ecx, byte [esi]
cmp ecx, 0x30
jge 0x46532f
jmp 0x46535a
mov esi, dword [esp + 0x2c]
or edx, 0xffffffff
mov dword [esp + 0x24], edx
cmp ecx, 0x6c
jne 0x465388
inc esi
mov al, 1
mov byte [esp + 0x1c], al
mov dword [esp + 0x2c], esi
movsx ecx, byte [esi]
cmp ecx, 0x6c
jne 0x465380
inc esi
mov byte [esp + 0x12], al
mov dword [esp + 0x2c], esi
movsx ecx, byte [esi]
jmp 0x465392
xor al, al
mov byte [esp + 0x12], al
jmp 0x465392
xor al, al
mov byte [esp + 0x12], al
mov byte [esp + 0x1c], al
mov esi, dword [esp + 0x78]
xor eax, eax
mov dword [esp + 0x44], esi
mov byte [esp + 0x13], 0
mov dword [esp + 0x40], eax
movsx eax, byte [esi]
cmp ecx, eax
je 0x4653c6
add esi, dword [esp + 0x6c]
inc dword [esp + 0x40]
cmp esi, 0x586a9a
jl 0x4653a5
mov cl, byte [esp + 0x13]
mov esi, dword [esp + 0x44]
jmp 0x4653ed
imul esi, dword [esp + 0x40], 6
add esi, 0x586a10
cmp dword [esp + 0x74], 0
mov dword [esp + 0x44], esi
jne 0x4653e6
test byte [esi + 2], 2
jne case.default.0x4653ff
mov cl, byte [esi + 3]
mov byte [esp + 0x13], cl
and dword [esp + 0x40], 0
movzx eax, cl
dec eax
cmp eax, 0xf
ja case.default.0x4653ff
jmp dword [eax*4 + 0x465d62]
xor al, al
mov cl, 1
jmp 0x465414
mov al, byte [esp + 0x12]
mov cl, byte [esp + 0x1c]
test byte [esi + 2], 1
je 0x46548d
test al, al
je 0x465431
mov ecx, dword [esp + 0x14]
add ecx, 8
mov dword [esp + 0x14], ecx
mov eax, dword [ecx - 8]
mov esi, dword [ecx - 4]
jmp 0x465442
mov esi, dword [esp + 0x14]
add esi, 4
mov dword [esp + 0x14], esi
mov eax, dword [esi - 4]
cdq
mov esi, edx
test esi, esi
jg 0x46546f
jl 0x46544c
test eax, eax
jae 0x46546f
test eax, eax
jne 0x465460
mov ecx, dword [esp + 0x7c]
cmp esi, ecx
jne 0x465460
and dword [esp + 0x38], eax
mov esi, ecx
jmp 0x46546b
neg eax
mov dword [esp + 0x38], eax
adc esi, 0
neg esi
mov cl, 0x2d
jmp 0x4654ba
cmp byte [esp + 0x33], 0
mov dword [esp + 0x38], eax
je 0x46547e
mov cl, 0x2b
jmp 0x4654ba
cmp byte [esp + 0x1b], 0
sete cl
dec cl
and cl, 0x20
jmp 0x4654ba
test al, al
je 0x4654a4
mov edx, dword [esp + 0x14]
add edx, 8
mov dword [esp + 0x14], edx
mov eax, dword [edx - 8]
mov esi, dword [edx - 4]
jmp 0x4654b4
mov esi, dword [esp + 0x14]
add esi, 4
mov dword [esp + 0x14], esi
mov eax, dword [esi - 4]
xor esi, esi
mov dword [esp + 0x38], eax
xor cl, cl
mov edx, dword [esp + 0x38]
mov eax, edx
or eax, esi
mov byte [esp + 0x12], cl
jne 0x4654cc
mov byte [esp + 0x1d], al
mov al, byte [esp + 0x32]
test al, al
je 0x4654f0
xor eax, eax
test cl, cl
mov ecx, dword [esp + 0x20]
setne al
sub ecx, eax
mov eax, dword [esp + 0x24]
cmp eax, ecx
cmovl eax, ecx
mov dword [esp + 0x24], eax
jmp 0x4654f4
mov eax, dword [esp + 0x24]
cmp eax, 0x3c
jge 0x46550d
push 0x46
pop edi
lea eax, [esp + 0x80]
mov dword [esp + 0x54], edi
mov dword [esp + 0x48], eax
jmp 0x465531
lea edi, [eax + 0xa]
push edi
mov dword [esp + 0x58], edi
call fcn.00464ad6
pop ecx
mov ecx, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x40], ecx
test ecx, ecx
je 0x465d31
mov edx, dword [esp + 0x38]
dec edi
add edi, eax
cmp byte [esp + 0x13], 0x10
jne 0x465587
push 0
push 0xa
pop eax
push eax
push esi
push edx
call fcn.00547120
mov dword [esp + 0x28], ecx
mov dword [esp + 0x5c], ebx
cmp ecx, 4
jge 0x465569
push 0
push 0xa
push edx
push eax
call fcn.0055cc40
cmp eax, 1
jne 0x46556d
test edx, edx
jne 0x46556d
xor ecx, ecx
jmp 0x465571
mov ecx, dword [esp + 0x28]
mov al, byte [ecx*2 + 0x5862ed]
mov byte [edi - 1], al
sub edi, 2
mov al, byte [ecx*2 + str.thstndrd]
mov byte [edi], al
mov ecx, dword [esp + 0x44]
movzx eax, byte [ecx + 4]
add eax, str.0123456789ABCDEF0123456789abcdef
mov dword [esp + 0x58], eax
movzx eax, byte [ecx + 1]
cdq
mov ecx, eax
mov dword [esp + 0x70], edx
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], ecx
push edx
push ecx
push esi
push eax
dec edi
call fcn.00547120
mov dword [esp + 0x38], eax
mov esi, edx
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x70]
mov dword [esp + 0x3c], ebx
mov al, byte [ecx + eax]
mov ecx, dword [esp + 0x28]
mov byte [edi], al
mov eax, dword [esp + 0x38]
test esi, esi
ja 0x4655ab
jb 0x4655de
test eax, eax
jne 0x4655ab
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x48]
sub eax, edx
mov esi, dword [esp + 0x54]
sub eax, esi
inc eax
add eax, edi
jmp 0x4655f8
dec edi
dec eax
mov byte [edi], 0x30
test eax, eax
jg 0x4655f3
mov al, byte [esp + 0x12]
test al, al
je 0x465607
dec edi
mov byte [edi], al
cmp byte [esp + 0x1d], 0
je 0x46562d
mov eax, dword [esp + 0x44]
mov al, byte [eax + 5]
test al, al
je 0x46562d
movzx eax, al
add eax, 0x588c7c
jmp 0x465627
dec edi
inc eax
mov byte [edi], cl
mov cl, byte [eax]
test cl, cl
jne 0x465623
sub edx, edi
dec esi
add esi, edx
mov eax, dword [esp + 0x20]
cmp byte [esp + 0x1f], 0
jne 0x46564e
mov edx, eax
sub edx, esi
test edx, edx
jle 0x46564e
mov ecx, dword [esp + 0x34]
call fcn.00465127
test esi, esi
jle 0x46565f
mov ecx, dword [esp + 0x34]
mov edx, edi
push esi
call fcn.00465da2
pop ecx
cmp byte [esp + 0x1f], 0
je 0x46567b
mov eax, dword [esp + 0x20]
sub eax, esi
test eax, eax
jle 0x46567b
mov ecx, dword [esp + 0x34]
mov edx, eax
call fcn.00465127
push dword [esp + 0x40]
call fcn.00464cd9
mov edx, dword [esp + 0x30]
inc edx
pop ecx
movsx eax, byte [edx]
test eax, eax
je case.default.0x4653ff
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
jmp 0x4651ce
mov esi, dword [esp + 0x14]
xorps xmm2, xmm2
add esi, 8
test edx, edx
mov dword [esp + 0x14], esi
cmovs edx, dword [esp + 0x6c]
mov dword [esp + 0x24], edx
movsd xmm1, qword [esi - 8]
comisd xmm2, xmm1
movsd qword [esp + 0x48], xmm1
jbe 0x4656e1
xorpd xmm1, xmmword [0x597330]
movsd qword [esp + 0x48], xmm1
mov byte [esp + 0x12], 0x2d
jmp 0x4656ff
cmp byte [esp + 0x33], 0
je 0x4656ef
mov byte [esp + 0x12], 0x2b
jmp 0x4656ff
cmp byte [esp + 0x1b], 0
sete al
dec al
and al, 0x20
mov byte [esp + 0x12], al
cmp cl, 4
jne 0x46570d
test edx, edx
jle 0x46570d
dec edx
mov dword [esp + 0x24], edx
movsd xmm3, qword [0x597110]
mov eax, edx
test edx, edx
jle 0x465728
mulsd xmm3, qword [0x597100]
dec eax
test eax, eax
jg 0x46571b
cmp cl, 2
jne 0x46573f
movapd xmm0, xmm3
addsd xmm0, xmm1
movapd xmm1, xmm0
movsd qword [esp + 0x48], xmm1
xor ecx, ecx
movapd xmm0, xmm1
mov dword [esp + 0x38], ecx
call fcn.00466916
test eax, eax
je 0x46575f
push 3
mov edi, 0x591624
pop esi
jmp 0x465632
comisd xmm1, xmm2
jbe 0x4658ac
comisd xmm1, xmmword [0x597220]
mov eax, dword [esp + 0x64]
movsd xmm5, qword [0x597118]
movapd xmm2, xmm5
jb 0x4657ab
mov esi, dword [esp + 0x68]
cmp ecx, eax
jg 0x4657a7
mulsd xmm2, qword [0x597220]
add ecx, esi
movapd xmm0, xmm2
mulsd xmm0, qword [0x597220]
comisd xmm1, xmm0
jae 0x465787
mov dword [esp + 0x38], ecx
movapd xmm0, xmm2
mulsd xmm0, qword [0x597208]
comisd xmm1, xmm0
jb 0x4657da
cmp ecx, eax
jg 0x4657d6
movapd xmm2, xmm0
add ecx, 0x40
mulsd xmm0, qword [0x597208]
comisd xmm1, xmm0
jae 0x4657bd
mov dword [esp + 0x38], ecx
movapd xmm0, xmm2
mulsd xmm0, qword [0x5971d0]
comisd xmm1, xmm0
jb 0x465809
cmp ecx, eax
jg 0x465805
movapd xmm2, xmm0
add ecx, 8
mulsd xmm0, qword [0x5971d0]
comisd xmm1, xmm0
jae 0x4657ec
mov dword [esp + 0x38], ecx
movapd xmm0, xmm2
mulsd xmm0, xmm4
comisd xmm1, xmm0
jb 0x46582e
cmp ecx, eax
jg 0x46582a
movapd xmm2, xmm0
inc ecx
mulsd xmm0, xmm4
comisd xmm1, xmm0
jae 0x465817
mov dword [esp + 0x38], ecx
divsd xmm1, xmm2
movsd xmm0, qword [0x5970e8]
comisd xmm0, xmm1
movsd qword [esp + 0x48], xmm1
jbe 0x465861
mulsd xmm1, qword [0x5971d0]
sub ecx, 8
comisd xmm0, xmm1
ja 0x465846
movsd qword [esp + 0x48], xmm1
mov dword [esp + 0x38], ecx
comisd xmm5, xmm1
jbe 0x46587c
mulsd xmm1, xmm4
dec ecx
comisd xmm5, xmm1
ja 0x465867
movsd qword [esp + 0x48], xmm1
mov dword [esp + 0x38], ecx
cmp ecx, eax
jle 0x4658ac
mov al, byte [esp + 0x12]
cmp al, 0x2d
jne 0x46588f
mov edi, str._Inf
jmp 0x46589e
cmp al, 0x2b
mov edi, str.Inf
mov ecx, 0x591638
cmovne edi, ecx
mov ecx, edi
call fcn.00466946
mov esi, eax
jmp 0x465632
mov al, byte [esp + 0x13]
lea esi, [esp + 0x80]
cmp al, 2
je 0x4658de
addsd xmm3, xmm1
comisd xmm3, xmm4
movsd qword [esp + 0x48], xmm3
jb 0x4658de
mulsd xmm3, qword [0x597100]
inc ecx
mov dword [esp + 0x38], ecx
movsd qword [esp + 0x48], xmm3
cmp al, 4
jne 0x465909
cmp byte [esp + 0x1d], 0
sete byte [esp + 0x1c]
cmp ecx, 0xfffffffc
jl 0x465902
cmp ecx, edx
jg 0x465902
sub edx, ecx
mov byte [esp + 0x13], 2
mov dword [esp + 0x24], edx
jmp 0x465917
mov byte [esp + 0x13], 3
jmp 0x465915
mov ah, byte [esp + 0x1e]
mov byte [esp + 0x1c], ah
cmp al, 3
jne 0x465917
xor ecx, ecx
lea eax, [ecx + edx]
mov dword [esp + 0x28], ecx
add eax, dword [esp + 0x20]
cmp eax, 0x37
jle 0x465947
add eax, 0xf
push eax
call fcn.00464ad6
mov dword [esp + 0x44], eax
mov esi, eax
pop ecx
test eax, eax
je 0x465d31
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
movzx eax, byte [esp + 0x1e]
mov edi, esi
imul eax, eax, 0xa
mov dword [esp + 0x58], edi
add eax, 0x10
test edx, edx
mov dword [esp + 0x54], eax
mov ah, byte [esp + 0x12]
setg al
or al, byte [esp + 0x1e]
or al, byte [esp + 0x1d]
mov byte [esp + 0x1b], al
test ah, ah
je 0x465978
mov byte [esi], ah
inc esi
test ecx, ecx
jns 0x465982
mov byte [esi], 0x30
inc esi
jmp 0x4659ad
mov edi, dword [esp + 0x28]
lea edx, [esp + 0x54]
lea ecx, [esp + 0x48]
call fcn.004650f5
mov byte [esi], al
inc esi
dec edi
jns 0x465986
mov edx, dword [esp + 0x24]
mov al, byte [esp + 0x1b]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x58]
mov ecx, dword [esp + 0x28]
test al, al
je 0x4659b5
mov byte [esi], 0x2e
inc esi
inc ecx
jns 0x4659f1
neg ecx
push ecx
push 0x30
push esi
mov dword [esp + 0x34], ecx
call fcn.005278d0
mov edx, dword [esp + 0x30]
add esp, 0xc
add esi, dword [esp + 0x28]
sub edx, dword [esp + 0x28]
jmp 0x4659f1
dec edx
lea ecx, [esp + 0x48]
mov dword [esp + 0x24], edx
lea edx, [esp + 0x54]
call fcn.004650f5
mov edx, dword [esp + 0x24]
mov byte [esi], al
inc esi
test edx, edx
jg 0x4659d8
cmp byte [esp + 0x1c], 0
je 0x465a29
cmp byte [esp + 0x1b], 0
je 0x465a29
jmp 0x465a0a
mov esi, eax
mov byte [esi], 0
lea eax, [esi - 1]
cmp byte [eax], 0x30
je 0x465a05
cmp byte [esi - 1], 0x2e
jne 0x465a29
cmp byte [esp + 0x1e], 0
je 0x465a25
mov byte [esi], 0x30
inc esi
jmp 0x465a29
dec esi
mov byte [esi], 0
cmp byte [esp + 0x13], 3
jne 0x465a81
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x38]
movzx eax, byte [eax + 4]
mov al, byte [eax + str.0123456789ABCDEF0123456789abcdef]
mov byte [esi], al
test edx, edx
jns 0x465a53
mov byte [esi + 1], 0x2d
add esi, 2
neg edx
jmp 0x465a5a
mov byte [esi + 1], 0x2b
add esi, 2
mov ecx, dword [esp + 0x68]
cmp edx, ecx
jl 0x465a6c
mov eax, edx
cdq
idiv ecx
add al, 0x30
mov byte [esi], al
inc esi
mov eax, edx
push 0xa
cdq
pop ecx
idiv ecx
add al, 0x30
add dl, 0x30
mov byte [esi], al
mov byte [esi + 1], dl
add esi, 2
mov al, byte [esp + 0x32]
mov byte [esi], 0
sub esi, edi
test al, al
je 0x465632
cmp byte [esp + 0x1f], 0
jne 0x46564e
mov eax, dword [esp + 0x20]
cmp esi, eax
jge 0x46563d
mov ecx, eax
mov edx, eax
sub ecx, esi
cmp eax, ecx
jl 0x465ac2
mov esi, edi
sub esi, ecx
mov al, byte [esi + edx]
mov byte [edx + edi], al
dec edx
cmp edx, ecx
jge 0x465ab7
xor eax, eax
cmp byte [esp + 0x12], al
setne al
test ecx, ecx
je 0x465add
push ecx
add eax, edi
push 0x30
push eax
call fcn.005278d0
add esp, 0xc
mov eax, dword [esp + 0x20]
mov esi, eax
jmp 0x465636
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
add esi, 4
mov dword [esp + 0x14], esi
mov ecx, dword [esi - 4]
mov eax, dword [eax + 0xc]
mov dword [ecx], eax
xor eax, eax
xor esi, esi
mov dword [esp + 0x20], eax
jmp 0x465636
xor esi, esi
mov byte [esp + 0x80], 0x25
lea edi, [esp + 0x80]
inc esi
jmp 0x465632
mov esi, dword [esp + 0x14]
add esi, 4
mov dword [esp + 0x14], esi
mov ecx, dword [esi - 4]
mov byte [esp + 0x80], cl
test edx, edx
js 0x465b5e
cmp edx, 1
jle 0x465b5a
lea eax, [edx - 1]
push eax
push ecx
lea eax, [esp + 0x89]
push eax
call fcn.005278d0
mov edx, dword [esp + 0x30]
add esp, 0xc
mov esi, edx
jmp 0x465b61
xor esi, esi
inc esi
lea edi, [esp + 0x80]
jmp 0x465632
mov esi, dword [esp + 0x14]
add esi, 4
mov dword [esp + 0x14], esi
mov edi, dword [esi - 4]
test edi, edi
jne 0x465b86
mov edi, 0x58ccc0
jmp 0x465b94
mov eax, dword [esp + 0x40]
cmp cl, 7
cmove eax, edi
mov dword [esp + 0x40], eax
test edx, edx
js 0x46589e
xor esi, esi
test edx, edx
jle 0x465632
cmp byte [esi + edi], 0
je 0x465632
inc esi
cmp esi, edx
jl 0x465ba6
jmp 0x465632
push 0x27
pop eax
cmp cl, 0xf
push 0x22
pop esi
cmove eax, esi
mov esi, dword [esp + 0x14]
add esi, 4
mov dword [esp + 0x44], eax
xor ecx, ecx
mov dword [esp + 0x14], esi
mov eax, dword [esi - 4]
test eax, eax
mov dword [esp + 0x38], eax
sete cl
mov dword [esp + 0x58], ecx
test ecx, ecx
je 0x465c01
cmp byte [esp + 0x13], 0xb
mov eax, str.NULL
mov esi, str._NULL_
cmovne eax, esi
mov dword [esp + 0x38], eax
xor esi, esi
xor edi, edi
mov dword [esp + 0x28], esi
test edx, edx
je 0x465c2b
mov ecx, dword [esp + 0x38]
mov al, byte [esi + ecx]
test al, al
je 0x465c23
cmp al, byte [esp + 0x44]
jne 0x465c1f
inc edi
inc esi
dec edx
jne 0x465c11
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x28], esi
test ecx, ecx
jne 0x465c3b
cmp byte [esp + 0x13], 0xb
jne 0x465c3b
xor edx, edx
inc edx
jmp 0x465c3d
xor edx, edx
lea eax, [edx*2 + 1]
mov dword [esp + 0x24], edx
add eax, esi
add eax, edi
cmp eax, 0x46
jle 0x465c6c
push eax
call fcn.00464ad6
mov dword [esp + 0x44], eax
mov edi, eax
pop ecx
test eax, eax
je 0x465d31
mov edx, dword [esp + 0x24]
jmp 0x465c73
lea edi, [esp + 0x80]
xor esi, esi
test edx, edx
je 0x465c80
mov eax, dword [esp + 0x44]
inc esi
mov byte [edi], al
xor eax, eax
cmp dword [esp + 0x28], eax
jle 0x465caa
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov cl, byte [eax + ecx]
mov byte [esi + edi], cl
inc esi
cmp cl, byte [esp + 0x44]
jne 0x465ca1
mov byte [esi + edi], cl
inc esi
inc eax
cmp eax, edx
jl 0x465c8c
mov edx, dword [esp + 0x24]
test edx, edx
je 0x465cb6
mov eax, dword [esp + 0x44]
mov byte [esi + edi], al
inc esi
mov byte [esi + edi], 0
jmp 0x465632
mov esi, dword [esp + 0x14]
add esi, 4
mov dword [esp + 0x14], esi
mov edx, dword [esi - 4]
test edx, edx
je 0x465aff
push dword [edx + 4]
mov edx, dword [edx]
mov ecx, dword [esp + 0x38]
call fcn.00465da2
pop ecx
jmp 0x465aff
mov esi, dword [esp + 0x14]
mov eax, dword [esi]
add esi, 8
mov dword [esp + 0x14], esi
mov dword [esp + 0x58], eax
mov esi, dword [esi - 4]
shl esi, 6
mov edx, dword [esi + eax + 8]
test edx, edx
je 0x465d29
mov ecx, dword [esp + 0x34]
push 0xffffffffffffffff
call fcn.00465da2
pop ecx
mov ecx, dword [esp + 0x34]
mov edx, 0x59164c
push 1
call fcn.00465da2
mov eax, dword [esp + 0x5c]
pop ecx
mov edx, dword [esi + eax + 0xc]
push 0xffffffffffffffff
jmp 0x465cda
mov eax, dword [esp + 0x34]
mov byte [eax + 0x18], 1
jmp case.default.0x4653ff
mov ecx, dword [esp + 0x34]
mov edx, 0x591620
push 1
call fcn.00465da2
pop ecx
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0052b1ec
mov esp, ebp
pop ebp
ret