Function at 0x415b70
Capabilities:
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x660
mov eax, dword [0x45f758]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov dword [ebp - 0x618], 0
mov dword [ebp - 0x644], 0
mov dword [ebp - 0x620], 0
mov dword [ebp - 0x630], 0
mov dword [ebp - 0x480], 0
push 0x270
push 0
lea eax, [ebp - 0x47c]
push eax
call fcn.00430db0
add esp, 0xc
mov dword [ebp - 0x638], 0
mov dword [ebp - 0x654], 0
mov dword [ebp - 0x64c], 0
mov dword [ebp - 0x658], 0x103
mov dword [ebp - 0x650], 0xffffffff
lea ecx, [ebp - 0x628]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00426c90
add esp, 8
mov dword [ebp - 0x618], eax
cmp dword [ebp - 0x618], 0
jne 0x415c37
push 0x4502c4
call fcn.00421c70
add esp, 4
jmp 0x4168d0
mov eax, dword [ebp - 0x628]
push eax
mov ecx, dword [ebp - 0x618]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.00423440
add esp, 0xc
mov dword [ebp - 0x648], eax
lea eax, [ebp - 0x640]
push eax
mov ecx, dword [ebp + 0x1c]
imul ecx, ecx, 0x274
push ecx
call fcn.00426ea0
add esp, 8
mov dword [ebp - 0x620], eax
cmp dword [ebp - 0x620], 0
jne 0x415c9d
mov edx, dword [ebp - 0x640]
push edx
push str.InstallIfsLspProtocolChains:_LspAlloc_failed:__d_n
call fcn.00421c70
add esp, 8
jmp 0x4168d0
mov dword [ebp - 0x62c], 0
mov dword [ebp - 0x614], 0
jmp 0x415cc2
mov eax, dword [ebp - 0x614]
add eax, 1
mov dword [ebp - 0x614], eax
mov ecx, dword [ebp - 0x614]
cmp ecx, dword [ebp + 0x1c]
jge 0x41606d
mov dword [ebp - 0x61c], 0
jmp 0x415cec
mov edx, dword [ebp - 0x61c]
add edx, 1
mov dword [ebp - 0x61c], edx
mov eax, dword [ebp - 0x61c]
cmp eax, dword [ebp - 0x628]
jge 0x416068
mov ecx, dword [ebp - 0x61c]
imul ecx, ecx, 0x274
mov edx, dword [ebp - 0x618]
mov eax, dword [edx + ecx + 0x24]
push eax
mov ecx, dword [ebp - 0x614]
mov edx, dword [ebp + 0x18]
mov eax, dword [edx + ecx*4]
push eax
push str.Matching_selected_ID__d_to_catalog__d_n
call fcn.00421be0
add esp, 0xc
mov ecx, dword [ebp - 0x61c]
imul ecx, ecx, 0x274
mov edx, dword [ebp - 0x614]
mov eax, dword [ebp + 0x18]
mov esi, dword [ebp - 0x618]
mov edx, dword [eax + edx*4]
cmp edx, dword [esi + ecx + 0x24]
jne 0x416063
mov eax, dword [ebp - 0x61c]
imul eax, eax, 0x274
mov ecx, dword [ebp - 0x618]
cmp dword [ecx + eax + 0x28], 6
jl 0x415d87
push str.InstallIfsLspProtocolChain:_Too_many_LSPs_installed__n
call fcn.00421c70
add esp, 4
jmp 0x4168d0
push 0x274
mov edx, dword [ebp - 0x61c]
imul edx, edx, 0x274
add edx, dword [ebp - 0x618]
push edx
mov eax, dword [ebp - 0x62c]
imul eax, eax, 0x274
add eax, dword [ebp - 0x620]
push eax
call fcn.0042dc90
add esp, 0xc
push 0x274
mov ecx, dword [ebp - 0x61c]
imul ecx, ecx, 0x274
add ecx, dword [ebp - 0x618]
push ecx
lea edx, [ebp - 0x480]
push edx
call fcn.0042dc90
add esp, 0xc
mov eax, dword [ebp - 0x61c]
imul eax, eax, 0x274
mov ecx, dword [ebp - 0x618]
lea edx, [ecx + eax + 0x74]
push edx
mov eax, dword [ebp + 0x10]
push eax
push 0x4503d8
push 0xff
mov ecx, dword [ebp - 0x62c]
imul ecx, ecx, 0x274
mov edx, dword [ebp - 0x620]
lea eax, [edx + ecx + 0x74]
push eax
call fcn.004184c0
add esp, 0x14
mov dword [ebp - 0x65c], eax
cmp dword [ebp - 0x65c], 0
jge 0x415e52
mov ecx, dword [ebp - 0x65c]
push ecx
push str.InstallIfsLspProtocolChains:_StringCchLSPPrintfW_failed:_0x_x_n
call fcn.00421c70
add esp, 8
jmp 0x4168d0
mov edx, dword [ebp - 0x61c]
imul edx, edx, 0x274
mov eax, dword [ebp - 0x618]
cmp dword [eax + edx + 0x28], 2
jl 0x415fd3
mov ecx, dword [ebp - 0x61c]
imul ecx, ecx, 0x274
mov edx, dword [ebp - 0x618]
mov eax, dword [edx + ecx + 0x28]
sub eax, 2
mov dword [ebp - 0x624], eax
jmp 0x415e9f
mov ecx, dword [ebp - 0x624]
sub ecx, 1
mov dword [ebp - 0x624], ecx
cmp dword [ebp - 0x624], 0
jl 0x415fd3
mov edx, dword [ebp - 0x61c]
imul edx, edx, 0x274
add edx, dword [ebp - 0x618]
mov eax, dword [ebp - 0x624]
mov ecx, dword [edx + eax*4 + 0x2c]
push ecx
mov edx, dword [ebp - 0x628]
push edx
mov eax, dword [ebp - 0x618]
push eax
call fcn.004230f0
add esp, 0xc
mov dword [ebp - 0x64c], eax
cmp dword [ebp - 0x64c], 1
jne 0x415fce
push 0
mov ecx, dword [ebp - 0x624]
add ecx, 1
push ecx
mov edx, dword [ebp - 0x61c]
imul edx, edx, 0x274
add edx, dword [ebp - 0x618]
push edx
call fcn.00423500
add esp, 0xc
mov eax, dword [ebp - 0x62c]
add eax, 1
mov ecx, dword [ebp - 0x61c]
imul ecx, ecx, 0x274
mov edx, dword [ebp - 0x618]
mov dword [edx + ecx + 0x70], eax
mov eax, dword [ebp - 0x648]
push eax
mov ecx, dword [ebp - 0x624]
add ecx, 1
push ecx
mov edx, dword [ebp - 0x62c]
imul edx, edx, 0x274
add edx, dword [ebp - 0x620]
push edx
call fcn.00423560
add esp, 0xc
mov eax, dword [ebp - 0x62c]
imul eax, eax, 0x274
mov ecx, dword [ebp - 0x620]
mov edx, dword [ecx + eax]
or edx, 0x20000
mov eax, dword [ebp - 0x62c]
imul eax, eax, 0x274
mov ecx, dword [ebp - 0x620]
mov dword [ecx + eax], edx
mov dword [ebp - 0x654], 1
mov edx, dword [ebp - 0x624]
push edx
mov eax, dword [ebp - 0x62c]
add eax, 1
push eax
mov ecx, dword [ebp - 0x628]
push ecx
mov edx, dword [ebp - 0x618]
push edx
lea eax, [ebp - 0x480]
push eax
call fcn.00416c90
add esp, 0x14
jmp 0x415fd3
jmp 0x415e90
cmp dword [ebp - 0x64c], 1
je 0x416054
mov ecx, dword [ebp - 0x648]
push ecx
push 0
mov edx, dword [ebp - 0x62c]
imul edx, edx, 0x274
add edx, dword [ebp - 0x620]
push edx
call fcn.00423500
add esp, 0xc
mov eax, dword [ebp - 0x62c]
imul eax, eax, 0x274
add eax, dword [ebp - 0x620]
mov ecx, 4
shl ecx, 0
mov edx, dword [ebp - 0x45c]
mov dword [eax + ecx + 0x2c], edx
mov eax, dword [ebp - 0x62c]
imul eax, eax, 0x274
mov ecx, dword [ebp - 0x620]
mov edx, dword [ecx + eax]
or edx, 0x20000
mov eax, dword [ebp - 0x62c]
imul eax, eax, 0x274
mov ecx, dword [ebp - 0x620]
mov dword [ecx + eax], edx
mov edx, dword [ebp - 0x62c]
add edx, 1
mov dword [ebp - 0x62c], edx
jmp 0x415cdd
jmp 0x415cb3
mov dword [ebp - 0x614], 0
jmp 0x416088
mov eax, dword [ebp - 0x614]
add eax, 1
mov dword [ebp - 0x614], eax
mov ecx, dword [ebp - 0x614]
cmp ecx, dword [ebp + 0x1c]
jge 0x41613d
mov edx, dword [ebp - 0x614]
imul edx, edx, 0x274
mov eax, dword [ebp - 0x620]
lea ecx, [eax + edx + 0x14]
push ecx
call dword [sym.imp.RPCRT4.dll_UuidCreate]
test eax, eax
je 0x4160d6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.InstallIfsLspProtocolChains:_UuidCreate_failed:__d_n
call fcn.00421c70
add esp, 8
jmp 0x4168d0
push 1
mov edx, dword [ebp - 0x614]
imul edx, edx, 0x274
add edx, dword [ebp - 0x620]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp - 0x614]
imul ecx, ecx, 0x274
mov edx, dword [ebp - 0x620]
lea eax, [edx + ecx + 0x14]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00415660
add esp, 0x14
mov dword [ebp - 0x634], eax
cmp dword [ebp - 0x634], 0
je 0x416138
push str.InstallIfsLspProtocolChains:_Unable_to_install_the_dummy_LSP_entry__n
call fcn.00421c70
add esp, 4
jmp 0x4168d0
jmp 0x416079
cmp dword [ebp - 0x654], 1
jne 0x416893
lea edx, [ebp - 0x660]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00426c90
add esp, 8
mov dword [ebp - 0x644], eax
cmp dword [ebp - 0x644], 0
jne 0x416183
push 0x4504b0
call fcn.00421c70
add esp, 4
jmp 0x4168d0
mov dword [ebp - 0x614], 0
jmp 0x41619e
mov ecx, dword [ebp - 0x614]
add ecx, 1
mov dword [ebp - 0x614], ecx
mov edx, dword [ebp - 0x614]
cmp edx, dword [ebp + 0x1c]
jge 0x4161ee
mov eax, dword [ebp - 0x660]
push eax
mov ecx, dword [ebp - 0x644]
push ecx
mov edx, dword [ebp - 0x614]
imul edx, edx, 0x274
mov eax, dword [ebp - 0x620]
lea ecx, [eax + edx + 0x14]
push ecx
call fcn.00423440
add esp, 0xc
mov edx, dword [ebp - 0x614]
imul edx, edx, 0x274
mov ecx, dword [ebp - 0x620]
mov dword [ecx + edx + 0x24], eax
jmp 0x41618f
mov dword [ebp - 0x614], 0
jmp 0x416209
mov edx, dword [ebp - 0x614]
add edx, 1
mov dword [ebp - 0x614], edx
mov eax, dword [ebp - 0x614]
cmp eax, dword [ebp - 0x628]
jge 0x416428
mov ecx, dword [ebp - 0x614]
imul ecx, ecx, 0x274
mov edx, dword [ebp - 0x618]
cmp dword [edx + ecx + 0x70], 0
jne 0x416236
jmp 0x4161fa
mov dword [ebp - 0x61c], 0
jmp 0x416251
mov eax, dword [ebp - 0x61c]
add eax, 1
mov dword [ebp - 0x61c], eax
mov ecx, dword [ebp - 0x614]
imul ecx, ecx, 0x274
mov edx, dword [ebp - 0x618]
mov eax, dword [ebp - 0x61c]
cmp eax, dword [edx + ecx + 0x28]
jge 0x4162f6
mov ecx, dword [ebp - 0x614]
imul ecx, ecx, 0x274
add ecx, dword [ebp - 0x618]
mov edx, dword [ebp - 0x61c]
cmp dword [ecx + edx*4 + 0x2c], 0
jne 0x4162f1
mov eax, dword [ebp - 0x614]
imul eax, eax, 0x274
mov ecx, dword [ebp - 0x618]
mov edx, dword [ecx + eax + 0x70]
sub edx, 1
imul edx, edx, 0x274
mov eax, dword [ebp - 0x614]
imul eax, eax, 0x274
add eax, dword [ebp - 0x618]
mov ecx, dword [ebp - 0x61c]
mov esi, dword [ebp - 0x620]
mov edx, dword [esi + edx + 0x24]
mov dword [eax + ecx*4 + 0x2c], edx
mov eax, dword [ebp - 0x614]
imul eax, eax, 0x274
mov ecx, dword [ebp - 0x618]
mov dword [ecx + eax + 0x70], 0
jmp 0x416242
mov dword [ebp - 0x658], 0x103
lea edx, [ebp - 0x640]
push edx
lea eax, [ebp - 0x658]
push eax
lea ecx, [ebp - 0x20c]
push ecx
mov edx, dword [ebp - 0x614]
imul edx, edx, 0x274
mov eax, dword [ebp - 0x618]
lea ecx, [eax + edx + 0x14]
push ecx
call sub.WS2_32.dll_WSCGetProviderPath
mov dword [ebp - 0x634], eax
cmp dword [ebp - 0x634], 0xffffffff
jne 0x41635e
mov edx, dword [ebp - 0x640]
push edx
push str.InstallIfsLspProtocolChains:_WSCGetProviderPath_failed:__d_n
call fcn.00421c70
add esp, 8
jmp 0x4168d0
lea eax, [ebp - 0x640]
push eax
push 1
mov ecx, dword [ebp - 0x614]
imul ecx, ecx, 0x274
add ecx, dword [ebp - 0x618]
push ecx
lea edx, [ebp - 0x20c]
push edx
mov eax, dword [ebp - 0x614]
imul eax, eax, 0x274
mov ecx, dword [ebp - 0x618]
lea edx, [ecx + eax + 0x14]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00419ca0
add esp, 0x18
mov dword [ebp - 0x634], eax
cmp dword [ebp - 0x634], 0xffffffff
jne 0x4163d1
mov ecx, dword [ebp - 0x640]
push ecx
push str.InstallIfsLspProtocolChains:_UpdateProvider_failed:__d_n
call fcn.00421c70
add esp, 8
jmp 0x4168d0
mov edx, dword [ebp - 0x614]
imul edx, edx, 0x274
mov eax, dword [ebp - 0x618]
mov ecx, dword [eax + edx + 0x28]
push ecx
mov edx, dword [ebp - 0x614]
imul edx, edx, 0x274
mov eax, dword [ebp - 0x618]
lea ecx, [eax + edx + 0x74]
push ecx
mov edx, dword [ebp - 0x614]
imul edx, edx, 0x274
mov eax, dword [ebp - 0x618]
mov ecx, dword [eax + edx + 0x24]
push ecx
push str.Updated_entry_ID:__d:__S__chain_len___d__n
call fcn.00421be0
add esp, 0x10
jmp 0x4161fa
mov edx, dword [ebp - 0x618]
push edx
call fcn.00426e80
add esp, 4
mov dword [ebp - 0x618], 0
mov eax, dword [ebp - 0x644]
push eax
call fcn.00426e80
add esp, 4
mov dword [ebp - 0x644], 0
call dword [sym.imp.WS2_32.dll_WSACleanup]
lea ecx, [ebp - 0x610]
push ecx
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
lea edx, [ebp - 0x628]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00426c90
add esp, 8
mov dword [ebp - 0x618], eax
cmp dword [ebp - 0x618], 0
jne 0x4164ab
push 0x45058c
call fcn.00421c70
add esp, 4
jmp 0x4168d0
lea ecx, [ebp - 0x640]
push ecx
mov edx, dword [ebp - 0x628]
shl edx, 2
push edx
call fcn.00426ea0
add esp, 8
mov dword [ebp - 0x638], eax
cmp dword [ebp - 0x638], 0
jne 0x4164ea
push str.InstallIfsLspProtocolChains:_Unable_to_enumerate_catalog_n
call fcn.00421c70
add esp, 4
jmp 0x4168d0
mov dword [ebp - 0x63c], 0
mov dword [ebp - 0x614], 0
jmp 0x41650f
mov eax, dword [ebp - 0x614]
add eax, 1
mov dword [ebp - 0x614], eax
mov ecx, dword [ebp - 0x614]
cmp ecx, dword [ebp + 0x1c]
jge 0x4165a0
mov edx, dword [ebp - 0x628]
push edx
mov eax, dword [ebp - 0x618]
push eax
mov ecx, dword [ebp - 0x614]
mov edx, dword [ebp + 0x18]
mov eax, dword [edx + ecx*4]
push eax
call fcn.00423390
add esp, 0xc
mov dword [ebp - 0x630], eax
cmp dword [ebp - 0x630], 0
jne 0x416567
push 0x450630
call fcn.00421c70
add esp, 4
jmp 0x4168d0
mov ecx, dword [ebp - 0x630]
mov dword [ecx + 0x70], 1
mov edx, dword [ebp - 0x63c]
mov eax, dword [ebp - 0x638]
mov ecx, dword [ebp - 0x630]
mov ecx, dword [ecx + 0x24]
mov dword [eax + edx*4], ecx
mov edx, dword [ebp - 0x63c]
add edx, 1
mov dword [ebp - 0x63c], edx
jmp 0x416500
mov dword [ebp - 0x614], 0
jmp 0x4165bb
mov eax, dword [ebp - 0x614]
add eax, 1
mov dword [ebp - 0x614], eax
mov ecx, dword [ebp - 0x614]
cmp ecx, dword [ebp + 0x1c]
jge 0x4167d1
mov edx, dword [ebp - 0x628]
push edx
mov eax, dword [ebp - 0x618]
push eax
mov ecx, dword [ebp - 0x614]
mov edx, dword [ebp + 0x18]
mov eax, dword [edx + ecx*4]
push eax
call fcn.00423390
add esp, 0xc
mov dword [ebp - 0x630], eax
cmp dword [ebp - 0x630], 0
jne 0x416613
push str.InstallIfsLspProtocolChain:_Unable_to_find_entry_to_reorder_catalog__n
call fcn.00421c70
add esp, 4
jmp 0x4168d0
mov ecx, dword [ebp - 0x630]
mov edx, dword [ecx + 0x28]
push edx
mov eax, dword [ebp - 0x630]
add eax, 0x74
push eax
mov ecx, dword [ebp - 0x630]
mov edx, dword [ecx + 0x24]
push edx
push str.Looping_through:__d:__S__chain_len___d__n
call fcn.00421be0
add esp, 0x10
mov dword [ebp - 0x61c], 1
jmp 0x416659
mov eax, dword [ebp - 0x61c]
add eax, 1
mov dword [ebp - 0x61c], eax
mov ecx, dword [ebp - 0x630]
mov edx, dword [ecx + 0x28]
sub edx, 1
cmp dword [ebp - 0x61c], edx
jge 0x4167cc
mov eax, dword [ebp - 0x628]
push eax
mov ecx, dword [ebp - 0x618]
push ecx
mov edx, dword [ebp - 0x61c]
mov eax, dword [ebp - 0x630]
mov ecx, dword [eax + edx*4 + 0x2c]
push ecx
call fcn.00423480
add esp, 0xc
mov dword [ebp - 0x648], eax
mov edx, dword [ebp - 0x648]
push edx
mov eax, dword [ebp - 0x61c]
mov ecx, dword [ebp - 0x630]
mov edx, dword [ecx + eax*4 + 0x2c]
push edx
push str.___Finding_dummy_ID_for_chain_entry:__d_is__d_n
call fcn.00421be0
add esp, 0xc
mov dword [ebp - 0x624], 0
jmp 0x4166de
mov eax, dword [ebp - 0x624]
add eax, 1
mov dword [ebp - 0x624], eax
mov ecx, dword [ebp - 0x624]
cmp ecx, dword [ebp - 0x628]
jge 0x4167c7
mov edx, dword [ebp - 0x624]
imul edx, edx, 0x274
mov eax, dword [ebp - 0x618]
cmp dword [eax + edx + 0x28], 2
jl 0x4167c2
mov ecx, dword [ebp - 0x624]
imul ecx, ecx, 0x274
add ecx, dword [ebp - 0x618]
mov edx, 4
imul edx, edx, 0
mov eax, dword [ecx + edx + 0x2c]
cmp eax, dword [ebp - 0x648]
jne 0x4167c2
mov ecx, dword [ebp - 0x624]
imul ecx, ecx, 0x274
mov edx, dword [ebp - 0x618]
cmp dword [edx + ecx + 0x70], 0
jne 0x4167c2
mov eax, dword [ebp - 0x624]
imul eax, eax, 0x274
mov ecx, dword [ebp - 0x63c]
mov edx, dword [ebp - 0x638]
mov esi, dword [ebp - 0x618]
mov eax, dword [esi + eax + 0x24]
mov dword [edx + ecx*4], eax
mov ecx, dword [ebp - 0x63c]
add ecx, 1
mov dword [ebp - 0x63c], ecx
mov edx, dword [ebp - 0x624]
imul edx, edx, 0x274
mov eax, dword [ebp - 0x618]
mov dword [eax + edx + 0x70], 1
mov ecx, dword [ebp - 0x624]
imul ecx, ecx, 0x274
mov edx, dword [ebp - 0x618]
mov eax, dword [edx + ecx + 0x24]
push eax
push str.______Adding:__d_n
call fcn.00421be0
add esp, 8
jmp 0x4166cf
jmp 0x41664a
jmp 0x4165ac
mov dword [ebp - 0x614], 0
jmp 0x4167ec
mov ecx, dword [ebp - 0x614]
add ecx, 1
mov dword [ebp - 0x614], ecx
mov edx, dword [ebp - 0x614]
cmp edx, dword [ebp - 0x628]
jge 0x416849
mov eax, dword [ebp - 0x614]
imul eax, eax, 0x274
mov ecx, dword [ebp - 0x618]
cmp dword [ecx + eax + 0x70], 0
jne 0x416847
mov edx, dword [ebp - 0x614]
imul edx, edx, 0x274
mov eax, dword [ebp - 0x63c]
mov ecx, dword [ebp - 0x638]
mov esi, dword [ebp - 0x618]
mov edx, dword [esi + edx + 0x24]
mov dword [ecx + eax*4], edx
mov eax, dword [ebp - 0x63c]
add eax, 1
mov dword [ebp - 0x63c], eax
jmp 0x4167dd
lea ecx, [ebp - 0x640]
push ecx
mov edx, dword [ebp - 0x628]
push edx
mov eax, dword [ebp - 0x638]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00417190
add esp, 0x10
mov dword [ebp - 0x634], eax
cmp dword [ebp - 0x634], 0
je 0x416891
mov edx, dword [ebp - 0x640]
push edx
push str.InstallIfsLspProtocolChains:_WriteProviderOrder_failed:__d_n
call fcn.00421c70
add esp, 8
jmp 0x4168d0
jmp 0x4168c6
mov eax, dword [ebp - 0x648]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00416f60
add esp, 8
mov dword [ebp - 0x634], eax
cmp dword [ebp - 0x634], 0
je 0x4168c6
push str.InstallIfsLspProtocolChains:_Unable_to_reorder_Winsock_catalog__n
call fcn.00421c70
add esp, 4
jmp 0x4168d0
mov dword [ebp - 0x650], 0
cmp dword [ebp - 0x618], 0
je 0x4168f2
mov edx, dword [ebp - 0x618]
push edx
call fcn.00426e80
add esp, 4
mov dword [ebp - 0x618], 0
cmp dword [ebp - 0x644], 0
je 0x416914
mov eax, dword [ebp - 0x644]
push eax
call fcn.00426e80
add esp, 4
mov dword [ebp - 0x644], 0
cmp dword [ebp - 0x638], 0
je 0x416936
mov ecx, dword [ebp - 0x638]
push ecx
call fcn.00426ee0
add esp, 4
mov dword [ebp - 0x638], 0
mov eax, dword [ebp - 0x650]
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0042e9cd
mov esp, ebp
pop ebp
ret