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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xdc
mov edx, dword [0xdfd630]
mov byte [esp + 0x62], 0
mov byte [esp + 0x63], 0
mov byte [esp + 0x64], 0
mov byte [esp + 0x65], 0
mov byte [esp + 0x66], 0
mov byte [esp + 0x67], 0
test edx, edx
je 0x46d380
movzx ecx, byte [0xee7884]
test cl, cl
je 0x46d380
xor ebx, ebx
nop
mov eax, dword [edx + ebx*8]
test eax, eax
je 0x46d670
mov dword [esp], eax
call fcn.00401b10
mov edx, dword [0xdfd630]
mov dword [edx + ebx*8], 0
movzx eax, byte [0xee7884]
add ebx, 1
mov ecx, eax
cmp ebx, eax
jl 0x46d350
mov edx, dword [0xdfd634]
test edx, edx
je 0x46d3d6
movzx ecx, byte [0xee7883]
test cl, cl
je 0x46d3d6
xor ebx, ebx
lea esi, [esi]
nop
imul esi, ebx, 0x644
mov eax, dword [edx + esi]
test eax, eax
je 0x46d688
mov dword [esp], eax
add ebx, 1
call fcn.00401b10
mov edx, dword [0xdfd634]
mov dword [edx + esi], 0
movzx eax, byte [0xee7883]
mov ecx, eax
cmp eax, ebx
jg 0x46d3a0
mov edx, dword [0xdfd638]
test edx, edx
je 0x46d426
movzx ecx, byte [0xee7882]
test cl, cl
je 0x46d426
xor ebx, ebx
lea esi, [esi]
imul esi, ebx, 0x638
mov eax, dword [edx + esi]
test eax, eax
je 0x46d658
mov dword [esp], eax
add ebx, 1
call fcn.00401b10
mov edx, dword [0xdfd638]
mov dword [edx + esi], 0
movzx eax, byte [0xee7882]
mov ecx, eax
cmp eax, ebx
jg 0x46d3f0
mov eax, dword [0xdfd630]
test eax, eax
je 0x46d441
mov dword [esp], eax
call fcn.00401b10
mov dword [0xdfd630], 0
mov eax, dword [0xdfd634]
test eax, eax
je 0x46d45c
mov dword [esp], eax
call fcn.00401b10
mov dword [0xdfd634], 0
mov eax, dword [0xdfd638]
test eax, eax
je 0x46d477
mov dword [esp], eax
call fcn.00401b10
mov dword [0xdfd638], 0
lea ebp, [esp + 0x68]
mov dword [esp + 0xc], 7
mov dword [esp + 8], 0x10000
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebp
call fcn.00403d50
cmp eax, 0xffffffff
je 0x46dcb0
mov dword [esp + 0x58], 0
mov ebx, 1
lea esi, [esi]
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x6c]
cmp eax, edx
je 0x46d4d2
sub eax, edx
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.00403e10
mov esi, dword [esp + 0x74]
test esi, esi
jle 0x46d523
mov edi, dword [esp + 0x58]
test edi, edi
je 0x46d6a0
mov eax, dword [esp + 0x58]
mov edi, dword [esp + 0x78]
mov dword [esp + 8], esi
sub ebx, esi
add eax, 0xee7880
mov dword [esp + 4], edi
add edi, esi
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
sub edi, dword [esp + 0x6c]
mov dword [esp], ebp
mov dword [esp + 4], edi
call fcn.00403e10
add dword [esp + 0x58], esi
test ebx, ebx
jle 0x46daf3
mov eax, dword [0x11641a0]
mov edx, dword [0x1164194]
cmp eax, edx
je 0x46d544
sub eax, edx
mov dword [esp], 0x1164190
mov dword [esp + 4], eax
call fcn.00403e10
mov eax, dword [0x116419c]
test eax, eax
jg 0x46d620
mov eax, dword [esp + 0x78]
mov edx, dword [esp + 0x6c]
cmp eax, edx
je 0x46d56b
sub eax, edx
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.00403e10
mov ecx, dword [esp + 0x74]
test ecx, ecx
jg 0x46d4b8
mov dword [esp + 4], 0
mov dword [esp], 5
call fcn.00402960
mov eax, dword [0x1164190]
mov dword [esp], eax
call fcn.00402b60
test eax, eax
jne 0x46d5c9
jmp 0x46dbb8
mov eax, dword [0x116419c]
test eax, eax
jg 0x46d4b8
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.00402960
mov eax, dword [0x1164190]
mov dword [esp], eax
call fcn.00402b60
test eax, eax
jle 0x46d4b8
mov dword [esp], 0x1164190
call fcn.00403df0
mov dword [esp], 0x1164190
call fcn.004043d0
cmp eax, 0xffffffff
jne 0x46d5a8
mov dword [esp], str.Cant_read_all_of_setup_data
call fcn.00401670
mov edx, dword [0x116419c]
test edx, edx
jle 0x46d5b5
jmp 0x46d4b8
mov dword [esp + 8], eax
mov eax, dword [0x11641a0]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.00404300
cmp eax, dword [0x116419c]
jne 0x46dc8c
mov dword [esp], 0x1164190
call fcn.00403df0
jmp 0x46d551
add ebx, 1
movzx eax, cl
cmp eax, ebx
jg 0x46d3f0
jmp 0x46d426
add ebx, 1
movzx eax, cl
cmp eax, ebx
jg 0x46d350
jmp 0x46d380
add ebx, 1
movzx eax, cl
cmp eax, ebx
jg 0x46d3a0
jmp 0x46d3d6
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0xa
mov dword [esp + 0xc], 5
mov dword [esp + 8], 4
mov dword [esp + 4], 4
mov dword [esp], 0xddf36c
call fcn.00405c70
test al, al
je 0x46db50
mov dword [esp + 0x1c], 0xee788c
mov dword [esp + 0x18], 0xee7884
mov dword [esp + 0x14], 0xee7883
mov dword [esp + 0x10], 0xee7882
mov dword [esp + 0xc], 0xee7880
mov dword [esp + 8], 0xee7888
mov dword [esp + 4], str._d_hd_c_c_c_d
mov dword [esp], ebp
call fcn.00404900
test eax, eax
jle 0x46db97
movsx eax, word [0xee7880]
cmp eax, dword [0x503534]
jle 0x46d740
mov dword [0x503534], eax
movzx edx, byte [0xee7882]
xor eax, eax
test dl, dl
jne 0x46dc00
movzx edx, byte [0xee7883]
mov dword [0xdfd638], eax
xor eax, eax
test dl, dl
jne 0x46dbd8
mov dword [0xdfd634], eax
movzx eax, byte [0xee7884]
test al, al
jne 0x46db10
mov dword [esp], 8
call fcn.00401ab0
mov dword [0xdfd630], eax
mov dword [eax + 4], 0
mov dword [eax], 0x51d138
cmp byte [0xee7882], 0
je 0x46d8c5
lea eax, [esp + 0x67]
mov ecx, dword [0xdfd638]
xor edi, edi
xor ebx, ebx
mov dword [esp + 0x50], eax
lea eax, [esp + 0x66]
lea esi, [esp + 0x80]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x65]
mov dword [esp + 0x48], eax
lea eax, [esp + 0x64]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x63]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x62]
mov dword [esp + 0x3c], eax
lea esi, [esi]
nop
lea eax, [ecx + ebx + 0x30]
mov dword [esp + 0x20], esi
add edi, 1
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], str._c_c_c_c_c_c_s_d
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp], ebp
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
call fcn.00404900
mov edx, dword [0xdfd638]
mov dword [esp], esi
add edx, ebx
mov dword [esp + 0x54], edx
call fcn.00401bb0
mov edx, dword [esp + 0x54]
mov ecx, dword [0xdfd638]
mov dword [edx], eax
movsx dx, byte [esp + 0x62]
lea eax, [ecx + ebx]
add ebx, 0x638
sub edx, 0x32
mov word [eax + 4], dx
movsx dx, byte [esp + 0x63]
sub edx, 0x32
mov word [eax + 6], dx
movsx dx, byte [esp + 0x64]
sub edx, 0x32
mov word [eax + 8], dx
movsx dx, byte [esp + 0x65]
sub edx, 0x32
mov word [eax + 0xa], dx
movsx dx, byte [esp + 0x66]
sub edx, 0x32
mov word [eax + 0xc], dx
movsx dx, byte [esp + 0x67]
sub edx, 0x32
mov word [eax + 0xe], dx
movzx eax, byte [0xee7882]
cmp eax, edi
jg 0x46d7f0
cmp byte [0xee7883], 0
je 0x46dad0
lea eax, [esp + 0x67]
lea esi, [esp + 0x80]
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0x50], eax
lea eax, [esp + 0x66]
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x65]
mov dword [esp + 0x48], eax
lea eax, [esp + 0x64]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x63]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x62]
mov dword [esp + 0x54], esi
mov esi, ecx
mov dword [esp + 0x3c], eax
jmp 0x46d9ff
mov eax, dword [0xdfd634]
mov byte [eax + ebx + 5], 1
mov dword [esp], edi
call sub.msvcrt.dll_atoi
mov edi, dword [0xdfd634]
add edi, ebx
mov byte [edi + 6], al
lea eax, [esp + 0x82]
mov dword [esp], eax
call fcn.00401bb0
mov dword [edi], eax
mov eax, dword [0xdfd634]
movsx dx, byte [esp + 0x62]
add eax, ebx
sub edx, 0x32
mov word [eax + 8], dx
movsx dx, byte [esp + 0x63]
sub edx, 0x32
mov word [eax + 0xa], dx
movsx dx, byte [esp + 0x64]
sub edx, 0x32
mov word [eax + 0xc], dx
movsx dx, byte [esp + 0x65]
sub edx, 0x32
mov word [eax + 0xe], dx
movsx dx, byte [esp + 0x66]
sub edx, 0x32
mov word [eax + 0x10], dx
movsx dx, byte [esp + 0x67]
sub edx, 0x32
mov word [eax + 0x12], dx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 3
mov dword [esp + 8], 4
mov dword [esp + 4], 4
mov dword [esp], 0xddf36c
call fcn.00405c70
test al, al
jne 0x46da80
movzx eax, byte [0xee7883]
add esi, 1
add ebx, 0x644
cmp eax, esi
jle 0x46dad0
mov eax, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov dword [esp + 4], str._c_c_c_c_c_c_s
mov dword [esp], ebp
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
call fcn.00404900
movsx eax, byte [esp + 0x80]
sub eax, 0x30
cmp eax, 9
jbe 0x46d920
mov eax, dword [esp + 0x54]
mov edi, dword [0xdfd634]
mov dword [esp], eax
add edi, ebx
call fcn.00401bb0
mov dword [edi], eax
jmp 0x46d94e
xor edi, edi
mov dword [esp + 0x5c], esi
mov esi, edi
mov edi, dword [esp + 0x3c]
lea esi, [esi]
mov dword [esp + 8], edi
mov dword [esp + 4], 0x51b6c8
mov dword [esp], ebp
call fcn.00404900
movsx cx, byte [esp + 0x62]
lea eax, [esi + esi + 0x10]
add esi, 1
add eax, dword [0xdfd634]
mov word [ebx + eax + 4], cx
cmp esi, 6
jne 0x46da90
mov esi, dword [esp + 0x5c]
jmp 0x46d9e7
cmp byte [0xee7884], 0
jne 0x46dc30
mov ebx, dword [0xee7888]
mov dword [esp + 0x58], 0x10
test ebx, ebx
jg 0x46d523
mov dword [esp], ebp
call fcn.00403da0
add esp, 0xdc
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
lea ebx, [eax*8]
mov dword [esp], ebx
call fcn.00401ab0
lea edi, [eax + 4]
mov dword [eax], 0
mov edx, eax
and edi, 0xfffffffc
mov dword [eax + ebx - 4], 0
sub eax, edi
lea ecx, [ebx + eax]
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [0xdfd630], edx
jmp 0x46d799
mov dword [esp + 0x18], 0xee788c
mov dword [esp + 0x14], 0xee7883
mov dword [esp + 0x10], 0xee7882
mov dword [esp + 0xc], 0xee7880
mov dword [esp + 8], 0xee7888
mov dword [esp + 4], str._d_hd_c_c_d
mov dword [esp], ebp
call fcn.00404900
mov byte [0xee7884], 0
test eax, eax
jg 0x46d72c
call dword [sym.imp.msvcrt.dll__errno]
mov dword [eax], 0
mov dword [esp], str.Cant_read_setup_info_from_reliable_data_buffer
call fcn.00401670
jmp 0x46d72c
call dword [sym.imp.msvcrt.dll__errno]
mov dword [eax], 0
mov dword [esp], str.No_setup_info_received
call fcn.00401670
jmp 0x46d5c9
imul ebx, edx, 0x644
mov dword [esp], ebx
call fcn.00401ab0
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_memset
jmp 0x46d767
imul ebx, edx, 0x638
mov dword [esp], ebx
call fcn.00401ab0
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], eax
call sub.msvcrt.dll_memset
jmp 0x46d751
mov edi, dword [esp + 0x58]
lea esi, [esp + 0x80]
lea esi, [esi]
nop
mov eax, dword [0xdfd630]
lea ebx, [edi*8]
mov dword [esp + 8], esi
add edi, 1
mov dword [esp + 4], str._s_d
add eax, ebx
mov dword [esp], ebp
add eax, 4
mov dword [esp + 0xc], eax
call fcn.00404900
mov dword [esp], esi
add ebx, dword [0xdfd630]
call fcn.00401bb0
mov dword [ebx], eax
movzx eax, byte [0xee7884]
cmp eax, edi
jg 0x46dc40
jmp 0x46dadd
mov dword [esp], str.Cant_copy_data_to_cbuf
call fcn.00401610
mov dword [esp], ebp
call fcn.00403da0
add esp, 0xdc
mov eax, 0xffffffff
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0x10000
mov dword [esp], str.No_memory_for_control_buffer___u_
call fcn.00402550
mov dword [esp], eax
call fcn.00401610
jmp 0x46dca0