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

Disassembly:
push 0xffffffffffffffff
push 0x1010b90d
mov eax, dword fs:[0]
push eax
sub esp, 0x1a4
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x1a0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [section..data]
xor eax, esp
push eax
lea eax, [esp + 0x1b8]
mov dword fs:[0], eax
mov ebx, dword [esp + 0x1c8]
lea ecx, [esp + 0x14]
mov eax, dword [esp + 0x1cc]
mov edx, str.client_type
mov esi, dword [esp + 0x1d0]
mov edi, dword [esp + 0x1d4]
mov dword [esp + 0x90], eax
lea eax, [ebx + 0x30]
push eax
call fcn.10044bd0
add esp, 4
mov dword [esp + 0x1c0], 0
lea ecx, [esp + 0x30]
push eax
call fcn.10044c50
mov byte [esp + 0x1c0], 1
lea eax, [esp + 0x30]
push eax
mov ecx, edi
call fcn.1003eb10
mov byte [esp + 0x1c0], 0
lea ecx, [esp + 0x30]
call fcn.10023470
mov dword [esp + 0x1c0], 0xffffffff
cmp dword [esp + 0x2c], 8
jb 0x1004330b
push dword [esp + 0x18]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x2c], 7
mov dword [esp + 0x28], 0
mov word [esp + 0x18], ax
cmp dword [ebx + 0x58], eax
je 0x100433af
lea eax, [ebx + 0x48]
mov edx, str.client_ver
push eax
lea ecx, [esp + 0x18]
call fcn.10044bd0
add esp, 4
mov dword [esp + 0x1c0], 3
lea ecx, [esp + 0x30]
push eax
call fcn.10044c50
mov byte [esp + 0x1c0], 4
lea eax, [esp + 0x30]
push eax
mov ecx, edi
call fcn.1003eb10
mov byte [esp + 0x1c0], 3
lea ecx, [esp + 0x30]
call fcn.10023470
mov dword [esp + 0x1c0], 0xffffffff
cmp dword [esp + 0x2c], 8
jb 0x10043398
push dword [esp + 0x18]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x2c], 7
mov dword [esp + 0x28], 0
mov word [esp + 0x18], ax
cmp dword [esi + 0x10], 0
je 0x1004343a
push esi
mov edx, str.special_ver
lea ecx, [esp + 0x18]
call fcn.10044bd0
add esp, 4
mov dword [esp + 0x1c0], 6
lea ecx, [esp + 0x30]
push eax
call fcn.10044c50
mov byte [esp + 0x1c0], 7
lea eax, [esp + 0x30]
push eax
mov ecx, edi
call fcn.1003eb10
mov byte [esp + 0x1c0], 6
lea ecx, [esp + 0x30]
call fcn.10023470
mov dword [esp + 0x1c0], 0xffffffff
cmp dword [esp + 0x2c], 8
jb 0x10043423
push dword [esp + 0x18]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x2c], 7
mov dword [esp + 0x28], 0
mov word [esp + 0x18], ax
cmp dword [esi + 0x28], 0
je 0x100434c8
lea eax, [esi + 0x18]
mov edx, str.special_id
push eax
lea ecx, [esp + 0x18]
call fcn.10044bd0
add esp, 4
mov dword [esp + 0x1c0], 9
lea ecx, [esp + 0x30]
push eax
call fcn.10044c50
mov byte [esp + 0x1c0], 0xa
lea eax, [esp + 0x30]
push eax
mov ecx, edi
call fcn.1003eb10
mov byte [esp + 0x1c0], 9
lea ecx, [esp + 0x30]
call fcn.10023470
mov dword [esp + 0x1c0], 0xffffffff
cmp dword [esp + 0x2c], 8
jb 0x100434b1
push dword [esp + 0x18]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x2c], 7
mov dword [esp + 0x28], 0
mov word [esp + 0x18], ax
cmp dword [esi + 0x40], 0
je 0x10043556
lea eax, [esi + 0x30]
mov edx, str.os_ver
push eax
lea ecx, [esp + 0x18]
call fcn.10044bd0
add esp, 4
mov dword [esp + 0x1c0], 0xc
lea ecx, [esp + 0x30]
push eax
call fcn.10044c50
mov byte [esp + 0x1c0], 0xd
lea eax, [esp + 0x30]
push eax
mov ecx, edi
call fcn.1003eb10
mov byte [esp + 0x1c0], 0xc
lea ecx, [esp + 0x30]
call fcn.10023470
mov dword [esp + 0x1c0], 0xffffffff
cmp dword [esp + 0x2c], 8
jb 0x1004353f
push dword [esp + 0x18]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x2c], 7
mov dword [esp + 0x28], 0
mov word [esp + 0x18], ax
cmp dword [esi + 0x58], 0
je 0x100435e4
lea eax, [esi + 0x48]
mov edx, str.sp_ver
push eax
lea ecx, [esp + 0x18]
call fcn.10044bd0
add esp, 4
mov dword [esp + 0x1c0], 0xf
lea ecx, [esp + 0x30]
push eax
call fcn.10044c50
mov byte [esp + 0x1c0], 0x10
lea eax, [esp + 0x30]
push eax
mov ecx, edi
call fcn.1003eb10
mov byte [esp + 0x1c0], 0xf
lea ecx, [esp + 0x30]
call fcn.10023470
mov dword [esp + 0x1c0], 0xffffffff
cmp dword [esp + 0x2c], 8
jb 0x100435cd
push dword [esp + 0x18]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x2c], 7
mov dword [esp + 0x28], 0
mov word [esp + 0x18], ax
push 0x118
lea eax, [esp + 0x9c]
mov dword [esp + 0x98], 0x11c
push 0
push eax
call fcn.100639b0
add esp, 0xc
lea ecx, [esp + 0x94]
call fcn.1001e640
movzx eax, al
test eax, eax
je 0x10043c7b
push dword [esp + 0x98]
lea eax, [esp + 0x18]
push eax
call fcn.1001c280
mov dword [esp + 0x1c8], 0x12
mov edx, str.os_major_version
push eax
lea ecx, [esp + 0x3c]
call fcn.10044cf0
add esp, 0xc
mov byte [esp + 0x1c0], 0x13
lea ecx, [esp + 0x60]
push eax
call fcn.10044c50
mov byte [esp + 0x1c0], 0x14
lea eax, [esp + 0x60]
push eax
mov ecx, edi
call fcn.1003eb10
mov byte [esp + 0x1c0], 0x13
lea ecx, [esp + 0x60]
call fcn.10023470
mov byte [esp + 0x1c0], 0x12
cmp dword [esp + 0x48], 8
jb 0x1004369d
push dword [esp + 0x34]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
mov dword [esp + 0x1c0], 0xffffffff
cmp dword [esp + 0x28], 8
jb 0x100436d2
push dword [esp + 0x14]
call fcn.1005d7c6
add esp, 4
push dword [esp + 0x9c]
xor eax, eax
mov dword [esp + 0x2c], 7
mov word [esp + 0x18], ax
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x2c], 0
call fcn.1001c280
mov dword [esp + 0x1c8], 0x16
mov edx, str.os_minor_version
push eax
lea ecx, [esp + 0x3c]
call fcn.10044cf0
add esp, 0xc
mov byte [esp + 0x1c0], 0x17
lea ecx, [esp + 0x60]
push eax
call fcn.10044c50
mov byte [esp + 0x1c0], 0x18
lea eax, [esp + 0x60]
push eax
mov ecx, edi
call fcn.1003eb10
mov byte [esp + 0x1c0], 0x17
lea ecx, [esp + 0x60]
call fcn.10023470
mov byte [esp + 0x1c0], 0x16
cmp dword [esp + 0x48], 8
jb 0x10043769
push dword [esp + 0x34]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
mov dword [esp + 0x1c0], 0xffffffff
cmp dword [esp + 0x28], 8
jb 0x1004379e
push dword [esp + 0x14]
call fcn.1005d7c6
add esp, 4
push dword [esp + 0xa0]
xor eax, eax
mov dword [esp + 0x2c], 7
mov word [esp + 0x18], ax
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x2c], 0
call fcn.1001c280
mov dword [esp + 0x1c8], 0x1a
mov edx, str.os_build_number
push eax
lea ecx, [esp + 0x3c]
call fcn.10044cf0
add esp, 0xc
mov byte [esp + 0x1c0], 0x1b
lea ecx, [esp + 0x60]
push eax
call fcn.10044c50
mov byte [esp + 0x1c0], 0x1c
lea eax, [esp + 0x60]
push eax
mov ecx, edi
call fcn.1003eb10
mov byte [esp + 0x1c0], 0x1b
lea ecx, [esp + 0x60]
call fcn.10023470
mov byte [esp + 0x1c0], 0x1a
cmp dword [esp + 0x48], 8
jb 0x10043835
push dword [esp + 0x34]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
mov dword [esp + 0x1c0], 0xffffffff
cmp dword [esp + 0x28], 8
jb 0x1004386a
push dword [esp + 0x14]
call fcn.1005d7c6
add esp, 4
push dword [esp + 0xa4]
xor eax, eax
mov dword [esp + 0x2c], 7
mov word [esp + 0x18], ax
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x2c], 0
call fcn.1001c280
mov dword [esp + 0x1c8], 0x1e
lea ecx, [esp + 0x38]
push eax
call fcn.10044d60
add esp, 0xc
mov byte [esp + 0x1c0], 0x1f
lea ecx, [esp + 0x60]
push eax
call fcn.10044c50
mov byte [esp + 0x1c0], 0x20
lea eax, [esp + 0x60]
push eax
mov ecx, edi
call fcn.1003eb10
mov byte [esp + 0x1c0], 0x1f
lea ecx, [esp + 0x60]
call fcn.10023470
mov byte [esp + 0x1c0], 0x1e
cmp dword [esp + 0x48], 8
jb 0x100438fc
push dword [esp + 0x34]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
mov dword [esp + 0x1c0], 0xffffffff
cmp dword [esp + 0x28], 8
jb 0x10043931
push dword [esp + 0x14]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x28], 7
mov word [esp + 0x14], ax
movzx eax, word [esp + 0x1a8]
push eax
lea eax, [esp + 0x18]
mov dword [esp + 0x28], 0
push eax
call fcn.1001c280
mov dword [esp + 0x1c8], 0x22
mov edx, str.os_service_pack_major
push eax
lea ecx, [esp + 0x3c]
call fcn.10044cf0
add esp, 0xc
mov byte [esp + 0x1c0], 0x23
lea ecx, [esp + 0x60]
push eax
call fcn.10044c50
mov byte [esp + 0x1c0], 0x24
lea eax, [esp + 0x60]
push eax
mov ecx, edi
call fcn.1003eb10
mov byte [esp + 0x1c0], 0x23
lea ecx, [esp + 0x60]
call fcn.10023470
mov byte [esp + 0x1c0], 0x22
cmp dword [esp + 0x48], 8
jb 0x100439ca
push dword [esp + 0x34]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
mov dword [esp + 0x1c0], 0xffffffff
cmp dword [esp + 0x28], 8
jb 0x100439ff
push dword [esp + 0x14]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x28], 7
mov word [esp + 0x14], ax
movzx eax, word [esp + 0x1aa]
push eax
lea eax, [esp + 0x18]
mov dword [esp + 0x28], 0
push eax
call fcn.1001c280
mov dword [esp + 0x1c8], 0x26
mov edx, str.os_service_pack_minor
push eax
lea ecx, [esp + 0x3c]
call fcn.10044cf0
add esp, 0xc
mov byte [esp + 0x1c0], 0x27
lea ecx, [esp + 0x60]
push eax
call fcn.10044c50
mov byte [esp + 0x1c0], 0x28
lea eax, [esp + 0x60]
push eax
mov ecx, edi
call fcn.1003eb10
mov byte [esp + 0x1c0], 0x27
lea ecx, [esp + 0x60]
call fcn.10023470
mov byte [esp + 0x1c0], 0x26
cmp dword [esp + 0x48], 8
jb 0x10043a98
push dword [esp + 0x34]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
mov dword [esp + 0x1c0], 0xffffffff
cmp dword [esp + 0x28], 8
jb 0x10043acd
push dword [esp + 0x14]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x28], 7
mov word [esp + 0x14], ax
movzx eax, word [esp + 0x1ac]
push eax
lea eax, [esp + 0x18]
mov dword [esp + 0x28], 0
push eax
call fcn.1001c280
mov dword [esp + 0x1c8], 0x2a
lea ecx, [esp + 0x38]
push eax
call fcn.10044dd0
add esp, 0xc
mov byte [esp + 0x1c0], 0x2b
lea ecx, [esp + 0x60]
push eax
call fcn.10044c50
mov byte [esp + 0x1c0], 0x2c
lea eax, [esp + 0x60]
push eax
mov ecx, edi
call fcn.1003eb10
mov byte [esp + 0x1c0], 0x2b
lea ecx, [esp + 0x60]
call fcn.10023470
mov byte [esp + 0x1c0], 0x2a
cmp dword [esp + 0x48], 8
jb 0x10043b61
push dword [esp + 0x34]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
mov dword [esp + 0x1c0], 0xffffffff
cmp dword [esp + 0x28], 8
jb 0x10043b96
push dword [esp + 0x14]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x28], 7
mov word [esp + 0x14], ax
movzx eax, byte [esp + 0x1ae]
push eax
lea eax, [esp + 0x18]
mov dword [esp + 0x28], 0
push eax
call fcn.1001c280
mov dword [esp + 0x1c8], 0x2e
mov edx, str.os_product_type
push eax
lea ecx, [esp + 0x3c]
call fcn.10044cf0
add esp, 0xc
mov byte [esp + 0x1c0], 0x2f
lea ecx, [esp + 0x60]
push eax
call fcn.10044c50
mov byte [esp + 0x1c0], 0x30
lea eax, [esp + 0x60]
push eax
mov ecx, edi
call fcn.1003eb10
mov byte [esp + 0x1c0], 0x2f
lea ecx, [esp + 0x60]
call fcn.10023470
mov byte [esp + 0x1c0], 0x2e
cmp dword [esp + 0x48], 8
jb 0x10043c2f
push dword [esp + 0x34]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
mov dword [esp + 0x1c0], 0xffffffff
cmp dword [esp + 0x28], 8
jb 0x10043c64
push dword [esp + 0x14]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x28], 7
mov dword [esp + 0x24], 0
mov word [esp + 0x14], ax
cmp dword [esi + 0x70], 0
je 0x10043d00
lea eax, [esi + 0x60]
push eax
lea ecx, [esp + 0x34]
call fcn.10044e40
add esp, 4
mov dword [esp + 0x1c0], 0x32
lea ecx, [esp + 0x60]
push eax
call fcn.10044c50
mov byte [esp + 0x1c0], 0x33
lea eax, [esp + 0x60]
push eax
mov ecx, edi
call fcn.1003eb10
mov byte [esp + 0x1c0], 0x32
lea ecx, [esp + 0x60]
call fcn.10023470
mov dword [esp + 0x1c0], 0xffffffff
cmp dword [esp + 0x48], 8
jb 0x10043ce9
push dword [esp + 0x34]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
cmp dword [esi + 0x88], 0
je 0x10043d88
lea eax, [esi + 0x78]
push eax
lea ecx, [esp + 0x34]
call fcn.10044ec0
add esp, 4
mov dword [esp + 0x1c0], 0x35
lea ecx, [esp + 0x60]
push eax
call fcn.10044c50
mov byte [esp + 0x1c0], 0x36
lea eax, [esp + 0x60]
push eax
mov ecx, edi
call fcn.1003eb10
mov byte [esp + 0x1c0], 0x35
lea ecx, [esp + 0x60]
call fcn.10023470
mov dword [esp + 0x1c0], 0xffffffff
cmp dword [esp + 0x48], 8
jb 0x10043d71
push dword [esp + 0x34]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
cmp dword [esi + 0xa0], 0
je 0x10043e17
lea eax, [esi + 0x90]
push eax
lea ecx, [esp + 0x34]
call fcn.10044f40
add esp, 4
mov dword [esp + 0x1c0], 0x38
lea ecx, [esp + 0x60]
push eax
call fcn.10044c50
mov byte [esp + 0x1c0], 0x39
lea eax, [esp + 0x60]
push eax
mov ecx, edi
call fcn.1003eb10
mov byte [esp + 0x1c0], 0x38
lea ecx, [esp + 0x60]
call fcn.10023470
mov dword [esp + 0x1c0], 0xffffffff
cmp dword [esp + 0x48], 8
jb 0x10043e00
push dword [esp + 0x34]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
cmp dword [esi + 0xb8], 0
je 0x10043ea6
lea eax, [esi + 0xa8]
push eax
lea ecx, [esp + 0x34]
call fcn.10044fc0
add esp, 4
mov dword [esp + 0x1c0], 0x3b
lea ecx, [esp + 0x60]
push eax
call fcn.10044c50
mov byte [esp + 0x1c0], 0x3c
lea eax, [esp + 0x60]
push eax
mov ecx, edi
call fcn.1003eb10
mov byte [esp + 0x1c0], 0x3b
lea ecx, [esp + 0x60]
call fcn.10023470
mov dword [esp + 0x1c0], 0xffffffff
cmp dword [esp + 0x48], 8
jb 0x10043e8f
push dword [esp + 0x34]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
cmp dword [esi + 0xd0], 0
je 0x10043f35
lea eax, [esi + 0xc0]
push eax
lea ecx, [esp + 0x34]
call fcn.10045040
add esp, 4
mov dword [esp + 0x1c0], 0x3e
lea ecx, [esp + 0x60]
push eax
call fcn.10044c50
mov byte [esp + 0x1c0], 0x3f
lea eax, [esp + 0x60]
push eax
mov ecx, edi
call fcn.1003eb10
mov byte [esp + 0x1c0], 0x3e
lea ecx, [esp + 0x60]
call fcn.10023470
mov dword [esp + 0x1c0], 0xffffffff
cmp dword [esp + 0x48], 8
jb 0x10043f1e
push dword [esp + 0x34]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
cmp dword [esi + 0xe8], 0
je 0x10043fc4
lea eax, [esi + 0xd8]
push eax
lea ecx, [esp + 0x34]
call fcn.100450c0
add esp, 4
mov dword [esp + 0x1c0], 0x41
lea ecx, [esp + 0x60]
push eax
call fcn.10044c50
mov byte [esp + 0x1c0], 0x42
lea eax, [esp + 0x60]
push eax
mov ecx, edi
call fcn.1003eb10
mov byte [esp + 0x1c0], 0x41
lea ecx, [esp + 0x60]
call fcn.10023470
mov dword [esp + 0x1c0], 0xffffffff
cmp dword [esp + 0x48], 8
jb 0x10043fad
push dword [esp + 0x34]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
mov dword [esp + 0x44], 0
mov word [esp + 0x34], ax
mov eax, dword [esp + 0x90]
xor ebp, ebp
mov ecx, dword [eax + 4]
mov esi, dword [eax]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x100440ab
xor ebx, ebx
lea ecx, [ecx]
lea edx, [esi + ebx]
lea eax, [edx + 0x18]
push eax
lea ecx, [esp + 0x34]
call fcn.10045140
add esp, 4
mov dword [esp + 0x1c0], 0x44
mov ecx, edi
push eax
call fcn.1003eb10
mov dword [esp + 0x1c0], 0x45
cmp dword [esp + 0x5c], 8
jb 0x10044034
push dword [esp + 0x48]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x5c], 7
mov dword [esp + 0x58], 0
mov word [esp + 0x48], ax
mov dword [esp + 0x1c0], 0xffffffff
cmp dword [esp + 0x44], 8
jb 0x10044069
push dword [esp + 0x30]
call fcn.1005d7c6
add esp, 4
xor eax, eax
mov dword [esp + 0x44], 7
mov word [esp + 0x30], ax
inc ebp
mov eax, dword [esp + 0x90]
add ebx, 0x30
mov dword [esp + 0x40], 0
mov ecx, dword [eax + 4]
mov esi, dword [eax]
sub ecx, esi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x10043ff0
mov ecx, dword [esp + 0x1b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1a0]
xor ecx, esp
call fcn.1005d006
add esp, 0x1b0
ret 0x10