Function at 0x464ac0
Capabilities:
Resolve dns
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x1fabc
call fcn.0078c8d0
push ebx
push ebp
push esi
mov ebp, ecx
xor ebx, ebx
push edi
mov dword [esp + 0x40], ebp
mov dword [esp + 0x14], 0x10e1
mov dword [esp + 0x3c], 0x7f000000
mov dword [esp + 0x20], ebx
mov dword [esp + 0x1c], 1
lea esi, [esp + 0x68]
mov edi, 4
mov ecx, esi
call fcn.00469910
add esi, 8
dec edi
jne 0x464afb
mov ecx, 0x82c5a8
mov dword [esp + 0x38], ebx
mov byte [esp + 0x13], 1
mov byte [esp + 0x2a], 1
call fcn.0046bd60
mov ecx, dword [ebp + 0x2120]
mov dword [ebp + 0x1c], eax
cmp ecx, 0xffffffff
jne 0x464b57
lea esi, [eax - 1]
xor edi, edi
cmp esi, ebx
jge 0x464b3b
mov edi, esi
xor esi, esi
mov ecx, 0x85cb40
call fcn.005e6780
and eax, 0x7fffffff
sub esi, edi
cdq
idiv esi
add edx, edi
mov dword [ebp + 0x2120], edx
cmp word [0x82c5fa], bx
je 0x464b80
mov cl, byte [ebp + 0x14]
mov eax, 1
test cl, cl
je 0x465873
pop edi
pop esi
pop ebp
mov eax, 9
pop ebx
add esp, 0x1fabc
ret
mov al, byte [0x82023c]
test al, al
je 0x464bb9
mov eax, dword [ebp + 0xc]
mov esi, dword [ebp + 4]
mov dword [ebp + 8], eax
mov cx, word [0x82c600]
mov edx, dword [0x82c5fc]
push ecx
push edx
lea ecx, [ebp + 0x212c]
call fcn.00469980
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1fabc
ret
mov al, byte [0x81c644]
test al, al
jne 0x464bd3
mov ecx, 0x83f450
call fcn.005ddd50
mov byte [0x81c644], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x83f450]
cmp eax, ecx
jbe 0x464be7
sub eax, ecx
jmp 0x464bef
mov ecx, dword [0x83f454]
add eax, ecx
add eax, 0x1388
xor ebx, ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], str.mangler1.westwood.com
mov esi, dword [esp + 0x24]
lea edx, [esp + 0x288]
push edx
push ebx
mov ecx, 0x82c5a8
call fcn.0046bd80
test al, al
je 0x464c3c
push ebx
mov ecx, 0x82c5a8
lea esi, [esp + 0x28c]
call fcn.0046bf20
test ax, ax
je 0x464c3c
mov dword [esp + 0x14], eax
mov edi, dword [esp + 0x24]
or ecx, 0xffffffff
add edi, 0x50
xor eax, eax
mov dword [esp + 0x24], edi
mov edi, esi
inc ebx
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x464d20
mov edi, esi
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x88]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x88]
push ecx
call sub.WSOCK32.dll_gethostbyname
test eax, eax
je 0x464d20
mov edx, dword [esp + 0x2c]
xor ecx, ecx
test edx, edx
jle 0x464cb8
mov edx, dword [eax + 0xc]
mov esi, dword [edx]
lea edx, [esp + 0x48]
mov edi, dword [edx]
cmp edi, dword [esi]
je 0x464cd9
mov edi, dword [esp + 0x20]
inc ecx
add edx, 4
cmp ecx, edi
jl 0x464ca6
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x20]
mov eax, dword [eax + 0xc]
mov ecx, edx
inc edi
add edx, 4
mov dword [esp + 0x2c], edx
mov edx, dword [eax]
mov dword [esp + 0x20], edi
mov eax, dword [edx]
mov dword [esp + ecx + 0x48], eax
cmp dword [esp + 0x2c], 0x10
jge 0x464d20
mov al, byte [0x81c644]
test al, al
jne 0x464cfa
mov ecx, 0x83f450
call fcn.005ddd50
mov byte [0x81c644], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x83f450]
cmp eax, ecx
jbe 0x464d0e
sub eax, ecx
jmp 0x464d16
mov ecx, dword [0x83f454]
add eax, ecx
cmp eax, dword [esp + 0x18]
jb 0x464c06
mov eax, dword [esp + 0x20]
cmp eax, 3
jge 0x464d48
mov eax, dword [ebp + 0x18]
test eax, eax
jle 0x4655b3
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 4]
pop edi
mov dword [ebp + 8], edx
pop esi
pop ebp
pop ebx
add esp, 0x1fabc
ret
test eax, eax
jle 0x464d78
mov ebx, dword [esp + 0x20]
lea edi, [esp + 0x68]
lea esi, [esp + 0x48]
mov ecx, dword [esp + 0x14]
mov eax, dword [esi]
lea edx, [esp + 0x30]
push ecx
push edx
mov ecx, edi
mov dword [esp + 0x38], eax
call fcn.00469960
add esi, 4
add edi, 8
dec ebx
jne 0x464d58
push 0
mov ecx, ebp
call fcn.00464840
mov esi, eax
lea ecx, [esp + 0xaaf4]
mov dword [esp + 0x14], esi
call fcn.00469c10
and esi, 0xffff
push 0x10e1
push esi
lea ecx, [esp + 0xaafc]
call fcn.00469e40
test al, al
je 0x465862
mov al, byte [0x81c644]
test al, al
jne 0x464dcd
mov ecx, 0x83f450
call fcn.005ddd50
mov byte [0x81c644], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x83f450]
cmp eax, ecx
jbe 0x464de1
sub eax, ecx
jmp 0x464de9
mov ecx, dword [0x83f454]
add eax, ecx
mov edi, dword [sym.imp.WINMM.dll_timeGetTime]
add eax, 0x1770
mov dword [esp + 0x18], eax
xor ebx, ebx
mov al, byte [0x81c644]
test al, al
jne 0x464e14
mov ecx, 0x83f450
call fcn.005ddd50
mov byte [0x81c644], 1
call edi
mov ecx, dword [0x83f450]
cmp eax, ecx
jbe 0x464e24
sub eax, ecx
jmp 0x464e2c
mov edx, dword [0x83f454]
add eax, edx
cmp eax, dword [esp + 0x18]
jae 0x464e9e
test bx, bx
jne 0x464fd1
mov eax, dword [esp + 0xaafc]
push 0
push 0x7f000000
lea ecx, [esp + 0x90]
push eax
push ecx
mov ecx, ebp
call fcn.00465e50
lea ecx, [esp + 0x68]
mov esi, eax
call fcn.004699d0
lea edx, [esp + 0x68]
push eax
push edx
lea eax, [esp + 0x90]
push esi
push eax
lea ecx, [esp + 0xab04]
call fcn.0046a220
push 0
lea ecx, [esp + 0xaaf8]
push 0
push ecx
push 0x7f000000
mov ecx, ebp
call fcn.00464950
mov ebx, eax
jmp 0x464dfa
test bx, bx
jne 0x464fd1
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], 1
lea eax, [edx - 1]
cmp eax, 1
mov dword [esp + 0x30], eax
jle 0x465849
mov esi, dword [sym.imp.WINMM.dll_timeGetTime]
lea edi, [esp + 0x70]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x38], eax
mov al, byte [0x81c644]
test al, al
jne 0x464eef
mov ecx, 0x83f450
call fcn.005ddd50
mov byte [0x81c644], 1
call esi
mov ecx, dword [0x83f450]
cmp eax, ecx
jbe 0x464eff
sub eax, ecx
jmp 0x464f07
mov ecx, dword [0x83f454]
add eax, ecx
add eax, 0xbb8
mov dword [esp + 0x18], eax
mov al, byte [0x81c644]
test al, al
jne 0x464f2a
mov ecx, 0x83f450
call fcn.005ddd50
mov byte [0x81c644], 1
call esi
mov ecx, dword [0x83f450]
cmp eax, ecx
jbe 0x464f3a
sub eax, ecx
jmp 0x464f42
mov edx, dword [0x83f454]
add eax, edx
cmp eax, dword [esp + 0x18]
jae 0x464fb0
test bx, bx
jne 0x464fb0
mov eax, dword [esp + 0xaafc]
push 0
push 0x7f000000
lea ecx, [esp + 0x90]
push eax
push ecx
mov ecx, ebp
call fcn.00465e50
mov ecx, edi
mov esi, eax
call fcn.004699d0
push eax
push edi
lea edx, [esp + 0x90]
push esi
push edx
lea ecx, [esp + 0xab04]
call fcn.0046a220
push 0
lea eax, [esp + 0xaaf8]
push 0
push eax
push 0x7f000000
mov ecx, ebp
call fcn.00464950
mov esi, dword [sym.imp.WINMM.dll_timeGetTime]
mov ebx, eax
jmp 0x464f10
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x30]
inc eax
add edi, 8
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x464ecd
test bx, bx
je 0x465849
cmp bx, word [esp + 0x14]
je 0x465850
mov al, byte [0x81c644]
test al, al
jne 0x464ff6
mov ecx, 0x83f450
call fcn.005ddd50
mov byte [0x81c644], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x83f450]
cmp eax, ecx
jbe 0x46500a
sub eax, ecx
jmp 0x465012
mov ecx, dword [0x83f454]
add eax, ecx
add eax, 0x1770
xor esi, esi
mov dword [esp + 0x18], eax
mov al, byte [0x81c644]
test al, al
jne 0x465037
mov ecx, 0x83f450
call fcn.005ddd50
mov byte [0x81c644], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x83f450]
cmp eax, ecx
jbe 0x46504b
sub eax, ecx
jmp 0x465053
mov edx, dword [0x83f454]
add eax, edx
cmp eax, dword [esp + 0x18]
jae 0x4650c6
test si, si
jne 0x4650c6
mov ecx, dword [esp + 0xaafc]
mov eax, dword [esp + 0x38]
push 0
push 0x7f000001
lea edx, [esp + 0x90]
push ecx
push edx
mov ecx, ebp
lea esi, [esp + eax*8 + 0x80]
call fcn.00465e50
mov ecx, esi
mov edi, eax
call fcn.004699d0
push eax
push esi
lea eax, [esp + 0x90]
push edi
push eax
lea ecx, [esp + 0xab04]
call fcn.0046a220
push 0
lea ecx, [esp + 0xaaf8]
push 0
push ecx
push 0x7f000001
mov ecx, ebp
call fcn.00464950
mov esi, eax
jmp 0x46501d
lea ecx, [esp + 0xaaf4]
call fcn.0046a070
test si, si
je 0x465862
cmp si, word [esp + 0x14]
je 0x465862
sub bx, si
mov dword [esp + 0x14], 0
neg bx
sbb ebx, ebx
and ebx, 2
add ebx, 2
mov dword [esp + 0x1c], ebx
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x48], ecx
xor eax, eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x58], edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x50], ecx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x64], eax
mov dword [esp + 0x54], ecx
xor ebx, ebx
lea esi, [esp + 0x58]
lea edi, [esp + 0x48]
push ebx
mov ecx, ebp
call fcn.00464840
push 0xa7ec
mov word [esi], ax
call fcn.00672b70
add esp, 4
test eax, eax
je 0x465155
mov ecx, eax
call fcn.00469c10
jmp 0x465157
xor eax, eax
xor edx, edx
push 0x10e1
mov dx, word [esi]
mov ecx, eax
push edx
mov dword [edi], eax
call fcn.00469e40
test al, al
je 0x4651bc
inc ebx
add edi, 4
add esi, 2
cmp ebx, 4
jl 0x465130
mov ecx, dword [esp + 0x3c]
mov al, byte [0x81c644]
add ecx, 0xa
mov dword [esp + 0x20], 0
test al, al
mov dword [esp + 0x3c], ecx
jne 0x4651a8
mov ecx, 0x83f450
call fcn.005ddd50
mov byte [0x81c644], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x83f450]
cmp eax, ecx
jbe 0x4651ef
sub eax, ecx
jmp 0x4651f7
test ebx, ebx
jle 0x46537d
lea edi, [esp + 0x48]
mov esi, dword [edi]
test esi, esi
je 0x4651e4
mov ecx, esi
call fcn.00469d10
push esi
call fcn.00672c80
add esp, 4
mov dword [edi], 0
add edi, 4
dec ebx
jne 0x4651c8
jmp 0x46537d
mov ecx, dword [0x83f454]
add eax, ecx
add eax, 0x2ee0
mov dword [esp + 0x18], eax
mov al, byte [0x81c644]
test al, al
jne 0x46521a
mov ecx, 0x83f450
call fcn.005ddd50
mov byte [0x81c644], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x83f450]
cmp eax, ecx
jbe 0x46522e
sub eax, ecx
jmp 0x465236
mov edx, dword [0x83f454]
add eax, edx
cmp eax, dword [esp + 0x18]
jae 0x465309
cmp dword [esp + 0x20], 4
jge 0x465309
mov ebp, dword [esp + 0x3c]
lea eax, [esp + 0x60]
lea ecx, [esp + 0x48]
mov ebx, 4
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x44], ebx
mov edx, dword [esp + 0x2c]
cmp word [edx], 0
jne 0x4652da
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
push 0
push ebp
mov esi, dword [eax]
lea edx, [esp + 0x90]
lea edi, [esp + ecx*8 + 0x70]
mov ecx, dword [esp + 0x48]
mov eax, dword [esi + 8]
push eax
push edx
call fcn.00465e50
mov ecx, edi
mov ebx, eax
call fcn.004699d0
push eax
push edi
lea eax, [esp + 0x90]
push ebx
push eax
mov ecx, esi
call fcn.0046a220
mov ecx, dword [esp + 0x40]
push 1
push 0
push esi
push ebp
call fcn.00464950
mov ecx, dword [esp + 0x2c]
test ax, ax
mov word [ecx], ax
je 0x4652d6
inc dword [esp + 0x20]
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
add esi, 4
inc ebp
add ecx, 2
dec eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
jne 0x46526c
mov ebp, dword [esp + 0x40]
jmp 0x465200
test ebx, ebx
jle 0x465333
lea edi, [esp + 0x48]
mov esi, dword [edi]
test esi, esi
je 0x46532d
mov ecx, esi
call fcn.00469d10
push esi
call fcn.00672c80
add esp, 4
mov dword [edi], 0
add edi, 4
dec ebx
jne 0x465311
mov eax, dword [esp + 0x20]
cmp eax, 4
jge 0x46534b
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x46537d
cmp dword [ebp + 4], 1
jg 0x465391
jmp 0x46537d
lea edx, [esp + 0x2a]
lea ecx, [esp + 0x2b]
push edx
push ecx
lea edx, [esp + 0x68]
lea ecx, [esp + 0x60]
push edx
push ecx
push eax
mov ecx, ebp
mov byte [esp + 0x3f], 0
call fcn.004658b0
test eax, eax
jne 0x46539c
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x46537d
cmp dword [ebp + 4], 1
jg 0x4653c6
mov eax, dword [esp + 0x14]
inc eax
cmp eax, 3
mov dword [esp + 0x14], eax
jl 0x465100
jmp 0x4653d8
mov edx, dword [ebp + 0xc]
mov dword [ebp + 8], edx
jmp 0x4655a7
mov cl, byte [esp + 0x2b]
mov ebx, dword [esp + 0x1c]
neg cl
sbb ecx, ecx
mov dword [ebp + 8], eax
mov al, byte [esp + 0x2a]
and ecx, 0x10
add ecx, 0x10
or ebx, ecx
test al, al
mov dword [esp + 0x1c], ebx
jne 0x4653dc
mov byte [esp + 0x13], 0
jmp 0x4653dc
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 4]
mov dword [ebp + 8], eax
mov dword [esp + 0x1c], ecx
mov byte [esp + 0x13], 0
mov ebx, dword [esp + 0x1c]
cmp dword [esp + 0x14], 3
jne 0x4653ef
mov dword [ebp + 8], 1
mov byte [esp + 0x13], 0
test bl, 4
je 0x4657c9
test bl, 0x10
je 0x4657c6
push 0
mov ecx, ebp
call fcn.00464840
lea ecx, [esp + 0x308]
mov esi, eax
call fcn.00469c10
and esi, 0xffff
push 0x10e1
push esi
lea ecx, [esp + 0x310]
call fcn.00469e40
test al, al
je 0x465473
push 0
mov ecx, ebp
call fcn.00464840
lea ecx, [esp + 0x152e0]
mov esi, eax
call fcn.00469c10
and esi, 0xffff
push 0x10e1
push esi
lea ecx, [esp + 0x152e8]
call fcn.00469e40
test al, al
jne 0x465498
lea ecx, [esp + 0x152e0]
call fcn.00469d10
lea ecx, [esp + 0x308]
call fcn.00469d10
lea ecx, [esp + 0xaaf4]
call fcn.00469d10
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x1fabc
ret
mov al, byte [0x81c644]
test al, al
jne 0x4654b2
mov ecx, 0x83f450
call fcn.005ddd50
mov byte [0x81c644], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x83f450]
cmp eax, ecx
jbe 0x4654c6
sub eax, ecx
jmp 0x4654ce
mov edx, dword [0x83f454]
add eax, edx
mov ebx, dword [esp + 0x3c]
add eax, 0xfa0
xor esi, esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], esi
add ebx, 0xa
mov al, byte [0x81c644]
test al, al
jne 0x4654fe
mov ecx, 0x83f450
call fcn.005ddd50
mov byte [0x81c644], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x83f450]
cmp eax, ecx
jbe 0x465512
sub eax, ecx
jmp 0x46551a
mov ecx, dword [0x83f454]
add eax, ecx
cmp eax, dword [esp + 0x18]
jae 0x46558a
test si, si
jne 0x4655c2
mov eax, dword [esp + 0x310]
mov edx, dword [esp + 0x38]
push 0
push ebx
lea ecx, [esp + 0x90]
push eax
push ecx
mov ecx, ebp
lea esi, [esp + edx*8 + 0x78]
call fcn.00465e50
mov ecx, esi
mov edi, eax
call fcn.004699d0
push eax
push esi
lea edx, [esp + 0x90]
push edi
push edx
lea ecx, [esp + 0x318]
call fcn.0046a220
push 0
lea eax, [esp + 0x30c]
push 0
push eax
push ebx
mov ecx, ebp
call fcn.00464950
mov dword [esp + 0x14], eax
mov esi, eax
jmp 0x4654e4
test si, si
jne 0x4655c2
lea ecx, [esp + 0x152e0]
call fcn.00469d10
lea ecx, [esp + 0x308]
call fcn.00469d10
lea ecx, [esp + 0xaaf4]
call fcn.00469d10
mov eax, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1fabc
ret
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + ecx*8 + 0x68]
mov eax, dword [esp + ecx*8 + 0x6c]
lea esi, [esp + ecx*8 + 0x68]
lea ecx, [esp + 0x30]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
call fcn.004699d0
mov ecx, dword [esp + 0x310]
push 0
push ebx
lea edx, [esp + 0x90]
inc eax
push ecx
push edx
mov ecx, ebp
mov word [esp + 0x44], ax
call fcn.00465e50
lea ecx, [esp + 0x30]
mov edi, eax
call fcn.004699d0
push eax
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x90]
push edi
push ecx
lea ecx, [esp + 0x318]
call fcn.0046a220
mov edx, dword [esp + 0x310]
push 0
push ebx
lea eax, [esp + 0x90]
push edx
push eax
mov ecx, ebp
call fcn.00465e50
lea ecx, [esp + 0x30]
mov edi, eax
call fcn.004699d0
lea ecx, [esp + 0x30]
push eax
push ecx
lea edx, [esp + 0x90]
push edi
push edx
lea ecx, [esp + 0x318]
call fcn.0046a220
mov eax, dword [esp + 0x310]
push 0
push ebx
lea ecx, [esp + 0x90]
push eax
push ecx
mov ecx, ebp
call fcn.00465e50
lea ecx, [esp + 0x30]
mov edi, eax
call fcn.004699d0
lea edx, [esp + 0x30]
push eax
push edx
lea eax, [esp + 0x90]
push edi
push eax
lea ecx, [esp + 0x318]
call fcn.0046a220
mov al, byte [0x81c644]
inc ebx
xor edi, edi
test al, al
jne 0x4656c6
mov ecx, 0x83f450
call fcn.005ddd50
mov byte [0x81c644], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x83f450]
cmp eax, ecx
jbe 0x4656da
sub eax, ecx
jmp 0x4656e2
mov ecx, dword [0x83f454]
add eax, ecx
add eax, 0xfa0
mov dword [esp + 0x18], eax
mov al, byte [0x81c644]
test al, al
jne 0x465705
mov ecx, 0x83f450
call fcn.005ddd50
mov byte [0x81c644], 1
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x83f450]
cmp eax, ecx
jbe 0x465719
sub eax, ecx
jmp 0x465721
mov edx, dword [0x83f454]
add eax, edx
cmp eax, dword [esp + 0x18]
jae 0x465781
test di, di
jne 0x465786
mov eax, dword [esp + 0x152e8]
push 0
push ebx
lea ecx, [esp + 0x90]
push eax
push ecx
mov ecx, ebp
call fcn.00465e50
mov ecx, esi
mov edi, eax
call fcn.004699d0
push eax
push esi
lea edx, [esp + 0x90]
push edi
push edx
lea ecx, [esp + 0x152f0]
call fcn.0046a220
push 0
lea eax, [esp + 0x152e4]
push 0
push eax
push ebx
mov ecx, ebp
call fcn.00464950
mov edi, eax
jmp 0x4656eb
test di, di
je 0x4657a8
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 8]
and eax, 0xffff
and edi, 0xffff
add ecx, eax
cmp edi, ecx
je 0x4657a8
mov eax, dword [esp + 0x1c]
or al, 0x40
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x152e0]
call fcn.00469d10
lea ecx, [esp + 0x308]
call fcn.00469d10
mov ebx, dword [esp + 0x1c]
jmp 0x4657c9
or ebx, 0x40
mov al, byte [ebp + 0x14]
test al, al
je 0x4657d3
or ebx, 8
mov al, byte [esp + 0x13]
test al, al
je 0x465804
mov edx, dword [ebp + 8]
lea ecx, [esp + 0xaaf4]
mov dword [ebp + 4], ebx
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x18], 0
call fcn.00469d10
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x1fabc
ret
cmp dword [ebp + 4], ebx
jne 0x465830
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
cmp esi, eax
je 0x465830
mov ecx, dword [ebp + 0x18]
test ecx, ecx
jle 0x465830
mov eax, 0x55555556
mov dword [ebp + 8], esi
imul ecx
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax - 1]
mov dword [ebp + 0x18], ecx
lea ecx, [esp + 0xaaf4]
call fcn.00469d10
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x1fabc
ret
cmp bx, word [esp + 0x14]
jne 0x46587e
xor eax, eax
mov dword [ebp + 4], 1
mov dword [ebp + 8], eax
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x18], eax
lea ecx, [esp + 0xaaf4]
call fcn.00469d10
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1fabc
ret
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x465862
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 4]
lea ecx, [esp + 0xaaf4]
mov dword [ebp + 8], edx
call fcn.00469d10
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1fabc
ret