Function at 0x468a40
Capabilities:
Access peb ldr_data
Get process heap force flags

Disassembly:
push 0xffffffffffffffff
push 0x4aaf30
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x10
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x30]
mov esi, ecx
push 0
push ecx
lea eax, [edi + 0x2c]
mov ecx, esp
mov dword [esp + 0x38], esp
push eax
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [esi + 0xc]
push 0x10
add ecx, 0x10
push ecx
call fcn.0041a1e0
add esp, 0xc
lea edx, [edi + 0x38]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
call sub.MFC42.DLL_CString::CString_2
push 0xe4d
mov ecx, 0x4dc390
call fcn.00498cc0
mov ecx, dword [esi + 0xc]
push ecx
mov dl, byte [ecx + 0x21]
mov dword [esp + 0x34], esp
mov bl, dl
xor bl, al
lea eax, [edi + 0x3c]
and bl, 0xf
xor bl, dl
mov byte [ecx + 0x21], bl
mov ecx, esp
push eax
call sub.MFC42.DLL_CString::CString_2
push 0xe4f
mov ecx, 0x4dc390
call fcn.00498cc0
mov ecx, dword [esi + 0xc]
shl al, 4
mov dl, byte [ecx + 0x21]
push ecx
and dl, 0xf
mov dword [esp + 0x34], esp
or dl, al
lea eax, [edi + 0x18]
mov byte [ecx + 0x21], dl
mov ecx, esp
push eax
call sub.MFC42.DLL_CString::CString_2
push 0xe54
mov ecx, 0x4dc390
call fcn.00498cc0
mov ecx, dword [esi + 0xc]
shl eax, 0xe
mov dx, word [ecx + 0xc]
push ecx
and edx, 0x3fff
mov dword [esp + 0x34], esp
or edx, eax
lea eax, [edi + 0x28]
mov word [ecx + 0xc], dx
mov ecx, esp
push eax
call sub.MFC42.DLL_CString::CString_2
push 0xe5d
mov ecx, 0x4dc390
call fcn.00498cc0
mov ecx, dword [esi + 0xc]
shl eax, 0xe
mov dx, word [ecx + 0xe]
and edx, 0x3fff
or edx, eax
mov word [ecx + 0xe], dx
call sub.MFC42.DLL_AfxGetThread
test eax, eax
je 0x468b61
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
jmp 0x468b63
xor eax, eax
lea ecx, [esp + 0x18]
lea edx, [esp + 0x14]
push ecx
push edx
mov ecx, eax
call fcn.004391c0
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x30]
and eax, 0xffff
mov ebp, 1
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea ebx, [eax + eax*4]
shl ebx, 5
call sub.MFC42.DLL_CString::CString_4
push ebx
lea eax, [esp + 0x34]
push str._08ld
push eax
mov dword [esp + 0x34], 0
call sub.MFC42.DLL_CString::Format
mov ebx, dword [esp + 0x3c]
add esp, 0xc
xor ecx, ecx
mov edx, 6
movsx eax, byte [edx + ebx]
sub eax, 0x30
shl ebp, 4
imul eax, ebp
add ecx, eax
dec edx
jns 0x468bc3
movsx edx, byte [ebx + 7]
mov dword [esp + 0x28], 0xffffffff
lea eax, [edx + ecx - 0x30]
lea ecx, [esp + 0x30]
mov dword [esp + 0x1c], eax
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x30]
and eax, 0xffff
mov ebp, 1
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea ebx, [eax + eax*4]
lea ebx, [ebx + ebx*4]
shl ebx, 5
call sub.MFC42.DLL_CString::CString_4
push ebx
lea ecx, [esp + 0x34]
push str._08ld
push ecx
mov dword [esp + 0x34], ebp
call sub.MFC42.DLL_CString::Format
mov ebx, dword [esp + 0x3c]
add esp, 0xc
xor edx, edx
mov ecx, 6
movsx eax, byte [ecx + ebx]
sub eax, 0x30
shl ebp, 4
imul eax, ebp
add edx, eax
dec ecx
jns 0x468c3d
movsx eax, byte [ebx + 7]
or ebp, 0xffffffff
lea ecx, [esp + 0x30]
lea ebx, [eax + edx - 0x30]
mov dword [esp + 0x28], ebp
call sub.MFC42.DLL_CString::CString
mov eax, dword [edi]
cmp eax, ebp
jne 0x468c72
mov dword [edi + 4], ebp
jmp 0x468c98
mov edx, dword [edi + 4]
cmp edx, ebp
je 0x468c98
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
jae 0x468c83
mov dword [edi], ecx
cmp dword [edi], ebx
jbe 0x468c89
mov dword [edi], ebx
cmp edx, ecx
jae 0x468c90
mov dword [edi + 4], ecx
cmp dword [edi + 4], ebx
jbe 0x468c98
mov dword [edi + 4], ebx
mov ecx, dword [esi + 0xc]
mov edx, dword [edi]
mov dword [ecx + 4], edx
mov eax, dword [esi + 0xc]
mov ecx, dword [edi + 4]
mov dword [eax + 8], ecx
mov edx, dword [esi + 0xc]
mov ax, word [edx + 0xc]
shr eax, 0xe
and al, 3
cmp al, 1
jne 0x468d10
mov eax, dword [edi + 0xc]
push 0
push eax
call dword [sym.imp.MSVCRT.dll_strtod]
fmul qword [0x4b4038]
add esp, 8
fadd qword [0x4b4030]
call sub.MSVCRT.dll__ftol
cmp ax, 0x190
jae 0x468ce6
mov eax, 0x190
jmp 0x468cf1
cmp ax, 0xaf0
jbe 0x468cf1
mov eax, 0xaf0
mov ecx, dword [esi + 0xc]
push eax
push 1
mov dx, word [ecx + 0xc]
mov ebx, edx
xor ebx, eax
and ebx, 0xfff
xor ebx, edx
mov word [ecx + 0xc], bx
jmp 0x468dc5
cmp al, 2
je 0x468d1c
cmp al, 3
jne 0x468de5
mov eax, dword [edi + 0x10]
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
mov ebp, eax
add esp, 4
cmp bp, 0x309
jbe 0x468d37
mov ebp, 0x309
lea ecx, [esp + 0x30]
call sub.MFC42.DLL_CString::CString_4
mov eax, ebp
lea ecx, [esp + 0x30]
and eax, 0xffff
mov dword [esp + 0x28], 2
push eax
push str._03d
push ecx
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x3c]
add esp, 0xc
mov dword [esp + 0x28], 0xffffffff
mov cl, byte [eax]
mov dl, byte [eax + 1]
mov al, byte [eax + 2]
movsx ecx, cl
movsx edx, dl
lea ecx, [edx + ecx*8]
movsx edx, al
lea ebx, [edx + ecx*8 - 0xdb0]
lea ecx, [esp + 0x30]
call sub.MFC42.DLL_CString::CString
cmp bx, 1
jae 0x468d9f
mov ebx, 1
jmp 0x468dab
cmp bx, 0x1ff
jbe 0x468dab
mov ebx, 0x1ff
mov eax, dword [esi + 0xc]
push ebp
push 0
mov cx, word [eax + 0xc]
mov edx, ecx
xor edx, ebx
and edx, 0xfff
xor edx, ecx
mov word [eax + 0xc], dx
mov ecx, esi
call fcn.00469940
mov ecx, dword [esi + 0xc]
and eax, 1
shl eax, 0xd
mov dx, word [ecx + 0xc]
and edx, 0xdfff
or eax, edx
mov word [ecx + 0xc], ax
mov eax, dword [esi + 0xc]
mov ax, word [eax + 0xe]
shr eax, 0xe
and al, 3
cmp al, 1
jne 0x468e4c
mov eax, dword [edi + 0x1c]
push 0
push eax
call dword [sym.imp.MSVCRT.dll_strtod]
fmul qword [0x4b4038]
add esp, 8
fadd qword [0x4b4030]
call sub.MSVCRT.dll__ftol
cmp ax, 0x190
jae 0x468e22
mov eax, 0x190
jmp 0x468e2d
cmp ax, 0xaf0
jbe 0x468e2d
mov eax, 0xaf0
mov ecx, dword [esi + 0xc]
push eax
push 1
mov dx, word [ecx + 0xe]
mov ebx, edx
xor ebx, eax
and ebx, 0xfff
xor ebx, edx
mov word [ecx + 0xe], bx
jmp 0x468f01
cmp al, 2
je 0x468e58
cmp al, 3
jne 0x468f21
mov eax, dword [edi + 0x20]
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
mov ebp, eax
add esp, 4
cmp bp, 0x309
jbe 0x468e73
mov ebp, 0x309
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_4
mov eax, ebp
lea ecx, [esp + 0x10]
and eax, 0xffff
mov dword [esp + 0x28], 3
push eax
push str._03d
push ecx
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x1c]
add esp, 0xc
mov dword [esp + 0x28], 0xffffffff
mov cl, byte [eax]
mov dl, byte [eax + 1]
mov al, byte [eax + 2]
movsx ecx, cl
movsx edx, dl
lea ecx, [edx + ecx*8]
movsx edx, al
lea ebx, [edx + ecx*8 - 0xdb0]
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
cmp bx, 1
jae 0x468edb
mov ebx, 1
jmp 0x468ee7
cmp bx, 0x1ff
jbe 0x468ee7
mov ebx, 0x1ff
mov eax, dword [esi + 0xc]
push ebp
push 0
mov cx, word [eax + 0xe]
mov edx, ecx
xor edx, ebx
and edx, 0xfff
xor edx, ecx
mov word [eax + 0xe], dx
mov ecx, esi
call fcn.00469940
mov ecx, dword [esi + 0xc]
and eax, 1
shl eax, 0xd
mov dx, word [ecx + 0xe]
and edx, 0xdfff
or eax, edx
mov word [ecx + 0xe], ax
mov eax, dword [esi + 0xc]
mov dl, byte [edi + 0x30]
mov cl, byte [eax + 0x20]
xor dl, cl
and dl, 0xf
xor dl, cl
mov byte [eax + 0x20], dl
mov eax, dword [esi + 0xc]
mov cl, byte [edi + 0x31]
mov dl, byte [eax + 0x20]
shl cl, 4
and dl, 0xf
or cl, dl
mov byte [eax + 0x20], cl
mov esi, dword [esi + 0xc]
mov al, byte [edi + 0x74]
pop edi
mov cl, byte [esi + 0x25]
and al, 1
shl al, 4
and cl, 0xef
or al, cl
mov ecx, dword [esp + 0x1c]
mov byte [esi + 0x25], al
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x1c
ret 4