Function at 0x42f108
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x23
push 0
push 0
dec ecx
jne 0x42f110
push ecx
push ebx
push esi
push edi
mov byte [ebp - 0x81], al
lea eax, [ebp - 0x40]
mov edx, dword [0x415db4]
call fcn.00406364
lea eax, [ebp - 0x80]
mov edx, dword [0x415db4]
call fcn.00406364
lea esi, [ebp - 0xb8]
xor eax, eax
push ebp
push 0x42f6de
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x5bc410], 0
jne 0x42f1c6
push 0x42f6ec
call sub.kernel32.dll_GetModuleHandleA_2
mov ebx, eax
test ebx, ebx
jne 0x42f176
push 0x42f6fc
call sub.kernel32.dll_GetModuleHandleA_2
mov ebx, eax
push 0x42f708
push ebx
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x5bc410], eax
push 0x42f720
push ebx
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x5bc414], eax
push 0x42f74c
push ebx
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x5bc41c], eax
push 0x42f754
push ebx
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x5bc420], eax
push 0x42f75c
push ebx
call sub.kernel32.dll_GetProcAddress_1
mov dword [0x5bc428], eax
cmp dword [0x5bc410], 0
je 0x42f6ac
cmp dword [0x5bc414], 0
je 0x42f6ac
cmp dword [0x5bc41c], 0
je 0x42f6ac
cmp dword [0x5bc420], 0
je 0x42f6ac
cmp dword [0x5bc428], 0
jne 0x42f210
cmp dword [0x5bc424], 0
je 0x42f6ac
mov eax, dword [0x5caa00]
mov edx, dword [0x5bc418]
mov dword [eax], edx
mov edx, esi
mov eax, dword [0x5bc410]
call fcn.00419c24
xor ebx, ebx
jmp 0x42f280
test ebx, ebx
je 0x42f254
cmp word [esi + 2], 0x8b
jne 0x42f254
cmp byte [esi + 4], 0x80
jne 0x42f254
mov eax, dword [esi + 0x1c]
add eax, 2
mov eax, dword [eax]
mov dword [0x5bc4b4], eax
mov dword [0x5bc4b8], ebx
jmp 0x42f28f
cmp byte [esi + 5], 0
je 0x42f25f
mov ebx, dword [esi + 8]
jmp 0x42f261
xor ebx, ebx
lea edx, [ebp - 0xdc]
mov eax, dword [esi + 0x20]
call fcn.00419c24
push esi
mov edi, esi
lea esi, [ebp - 0xdc]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop esi
movzx eax, word [esi + 2]
add eax, 0xffffff3e
sub ax, 2
jae 0x42f22d
cmp dword [0x5bc4b8], 0
je 0x42f55b
lea edx, [ebp - 0x40]
mov eax, dword [0x5bc414]
call fcn.0041aee0
mov eax, dword [ebp - 0x20]
call fcn.00406e74
dec eax
jne 0x42f55b
lea edx, [ebp - 0x11c]
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0xc]
call fcn.0041aee0
lea edx, [ebp - 0x11c]
lea eax, [ebp - 0x40]
mov ecx, dword [0x415db4]
call fcn.00406698
mov ebx, sub.kernel32.dll_RaiseException_1
cmp word [ebx], 0x25ff
jne 0x42f2f0
add ebx, 2
mov eax, dword [ebx]
mov ebx, dword [eax]
xor eax, eax
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x20]
call fcn.00406e7c
test eax, eax
jl 0x42f42c
inc eax
mov dword [ebp - 0x90], eax
xor edi, edi
mov eax, edi
add eax, eax
add eax, eax
add eax, eax
sub eax, edi
mov edx, dword [ebp - 0x20]
cmp ebx, dword [edx + eax*4 + 0xc]
jne 0x42f38d
mov eax, edi
add eax, eax
add eax, eax
add eax, eax
sub eax, edi
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + eax*4 + 4]
sub eax, 4
cmp dword [eax], 0xeefface
jne 0x42f41f
mov eax, edi
add eax, eax
add eax, eax
add eax, eax
sub eax, edi
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + eax*4 + 4]
mov edx, esi
call fcn.00419c24
cmp dword [esi + 0x14], 4
jne 0x42f41f
cmp byte [esi + 7], 0
je 0x42f41f
mov eax, dword [esi + 8]
mov dword [0x5ce99c], eax
mov edx, 0x42ef48
sub edx, dword [esi + 0x20]
mov eax, dword [esi + 0xc]
call fcn.0044a064
jmp 0x42f41f
mov eax, edi
add eax, eax
add eax, eax
add eax, eax
sub eax, edi
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + eax*4 + 0xc]
mov edx, esi
call fcn.00419c24
jmp 0x42f410
mov eax, dword [esi + 8]
cmp eax, dword [0x5bc41c]
jne 0x42f3ef
mov eax, edi
add eax, eax
add eax, eax
add eax, eax
sub eax, edi
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + eax*4 + 0xc]
mov dword [ebp - 0x88], eax
cmp dword [esi + 0x14], 4
jne 0x42f41f
cmp byte [esi + 7], 0
je 0x42f41f
mov eax, dword [esi + 8]
mov dword [0x5ce994], eax
mov edx, 0x42ede0
sub edx, dword [esi + 0x20]
mov eax, dword [esi + 0xc]
call fcn.0044a064
jmp 0x42f41f
lea edx, [ebp - 0xdc]
mov eax, dword [esi + 0x20]
call fcn.00419c24
push esi
push edi
mov edi, esi
lea esi, [ebp - 0xdc]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
movzx eax, word [esi + 2]
add eax, 0xffffff3e
sub ax, 2
jae 0x42f3a7
inc edi
dec dword [ebp - 0x90]
jne 0x42f311
cmp dword [ebp - 0x88], 0
je 0x42f55b
lea edx, [ebp - 0x40]
mov eax, dword [0x5bc410]
call fcn.0041aee0
mov eax, dword [ebp - 0x20]
call fcn.00406e7c
test eax, eax
jl 0x42f55b
inc eax
mov dword [ebp - 0x90], eax
xor edi, edi
mov eax, edi
add eax, eax
add eax, eax
add eax, eax
sub eax, edi
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + eax*4 + 0xc]
lea edx, [ebp - 0x80]
call fcn.0041aee0
xor ebx, ebx
mov byte [ebp - 0x89], 0
mov eax, dword [ebp - 0x60]
call fcn.00406e7c
test eax, eax
jl 0x42f4eb
inc eax
mov dword [ebp - 0x94], eax
xor eax, eax
mov edx, eax
add edx, edx
add edx, edx
add edx, edx
sub edx, eax
mov ecx, dword [ebp - 0x60]
mov edx, dword [ecx + edx*4 + 0xc]
cmp edx, dword [ebp - 0x88]
jne 0x42f4c2
mov edx, edi
add edx, edx
add edx, edx
add edx, edx
sub edx, edi
mov ecx, dword [ebp - 0x20]
mov ebx, dword [ecx + edx*4 + 0xc]
jmp 0x42f4e2
mov edx, eax
add edx, edx
add edx, edx
add edx, edx
sub edx, eax
mov ecx, dword [ebp - 0x60]
mov edx, dword [ecx + edx*4 + 0xc]
cmp edx, dword [0x5bc420]
jne 0x42f4e2
mov byte [ebp - 0x89], 1
inc eax
dec dword [ebp - 0x94]
jne 0x42f496
test ebx, ebx
je 0x42f54e
mov eax, edi
add eax, eax
add eax, eax
add eax, eax
sub eax, edi
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + eax*4 + 4]
mov edx, esi
call fcn.00419c24
cmp dword [esi + 0x14], 4
jne 0x42f54e
cmp byte [esi + 7], 0
je 0x42f54e
cmp byte [ebp - 0x89], 0
je 0x42f536
mov eax, dword [esi + 8]
mov dword [0x5ce998], eax
mov edx, 0x42eec8
sub edx, dword [esi + 0x20]
mov eax, dword [esi + 0xc]
call fcn.0044a064
jmp 0x42f54e
mov eax, dword [esi + 8]
mov dword [0x5ce9a0], eax
mov edx, 0x42efd0
sub edx, dword [esi + 0x20]
mov eax, dword [esi + 0xc]
call fcn.0044a064
inc edi
dec dword [ebp - 0x90]
jne 0x42f45f
cmp byte [ebp - 0x81], 0
je 0x42f687
call fcn.0042f0f4
mov edx, esi
call fcn.00419c24
jmp 0x42f595
lea edx, [ebp - 0xdc]
mov eax, dword [esi + 0x20]
call fcn.00419c24
push esi
mov edi, esi
lea esi, [ebp - 0xdc]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop esi
cmp byte [esi], 0
je 0x42f5cb
movzx eax, word [esi + 2]
add eax, 0xffffff3e
sub ax, 2
jb 0x42f5cb
cmp word [esi + 2], 0x89
jne 0x42f576
mov eax, dword [esi + 0x1c]
inc eax
cmp dword [eax], 0x24448bc2
jne 0x42f576
mov eax, dword [esi + 0x1c]
add eax, 5
cmp dword [eax], 0xc488b04
jne 0x42f576
cmp byte [esi], 0
je 0x42f687
movzx eax, word [esi + 2]
add eax, 0xffffff3e
sub ax, 2
jb 0x42f687
mov ebx, dword [esi + 0x1c]
lea edx, [ebp - 0xdc]
mov eax, dword [esi + 0x20]
call fcn.00419c24
push esi
mov edi, esi
lea esi, [ebp - 0xdc]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop esi
jmp 0x42f62a
lea edx, [ebp - 0xdc]
mov eax, dword [esi + 0x20]
call fcn.00419c24
push esi
mov edi, esi
lea esi, [ebp - 0xdc]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
pop esi
cmp byte [esi], 0
je 0x42f660
movzx eax, word [esi + 2]
add eax, 0xffffff3e
sub ax, 2
jb 0x42f660
cmp word [esi + 2], 0x89
jne 0x42f60b
mov eax, dword [esi + 0x1c]
inc eax
cmp dword [eax], 0x24448bc2
jne 0x42f60b
mov eax, dword [esi + 0x1c]
add eax, 5
cmp dword [eax], 0xc488b04
jne 0x42f60b
cmp byte [esi], 0
je 0x42f677
movzx eax, word [esi + 2]
add eax, 0xffffff3e
sub ax, 2
jb 0x42f677
mov ebx, dword [esi + 0x1c]
test ebx, ebx
je 0x42f687
mov edx, 0x42f070
mov eax, ebx
call fcn.0044a044
cmp dword [0x5bc428], 0
je 0x42f69d
mov eax, dword [0x5bc428]
mov dword [eax], 0x42f094
jmp 0x42f6ac
mov edx, 0x42f094
mov eax, dword [0x5bc424]
call fcn.0044a014
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x42f6e5
lea eax, [ebp - 0x11c]
mov edx, dword [0x415db4]
call fcn.00406434
lea eax, [ebp - 0x80]
mov edx, dword [0x415db4]
mov ecx, 2
call fcn.00406480
ret