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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10043ee8
mov eax, dword fs:[0]
push eax
sub esp, 0x64
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10075b30]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x24], edi
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov ebp, dword [edi + 0x28]
cmp dword [edi + 0x24], ebp
lea esi, [edi + 0x20]
mov byte [esp + 0x80], 1
jbe 0x100379bd
call dword [0x10045170]
mov ebx, dword [esi + 4]
cmp ebx, dword [esi + 8]
jbe 0x100379cb
call dword [0x10045170]
cmp esi, esi
je 0x100379d5
call dword [0x10045170]
mov ecx, ebp
sub ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push ebp
push ebx
call fcn.10039cf0
add esp, 0xc
xor ebp, ebp
xor ebx, ebx
lea esp, [esp]
mov eax, dword [esi + 4]
test eax, eax
je 0x10037a57
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jae 0x10037a57
mov eax, dword [esi + 4]
test eax, eax
je 0x10037a42
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x10037a48
call dword [0x10045170]
mov ecx, dword [esi + 4]
mov dword [ebx + ecx + 0x10], ebp
add ebp, 1
add ebx, 0x18
jmp 0x10037a00
mov eax, dword [esi + 4]
test eax, eax
je 0x10037a74
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 4], eax
mov eax, dword [edi]
test eax, eax
je 0x10037a86
push eax
call fcn.1003c06e
add esp, 4
mov eax, dword [edi + 4]
xor ecx, ecx
mov edx, 0x18
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1003c007
xor ebp, ebp
add esp, 4
cmp dword [edi + 4], ebp
mov dword [edi], eax
jbe 0x10037b0c
xor ebx, ebx
mov eax, dword [esi + 4]
test eax, eax
je 0x10037ace
mov ecx, dword [esi + 8]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x10037ad4
call dword [0x10045170]
mov eax, dword [esi + 4]
mov ecx, dword [edi]
mov edx, dword [eax + ebx]
add eax, ebx
mov dword [ecx + ebx], edx
mov edx, dword [eax + 4]
add ecx, ebx
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
mov edx, dword [eax + 0xc]
mov dword [ecx + 0xc], edx
mov edx, dword [eax + 0x10]
mov dword [ecx + 0x10], edx
mov eax, dword [eax + 0x14]
add ebp, 1
mov dword [ecx + 0x14], eax
add ebx, 0x18
cmp ebp, dword [edi + 4]
jb 0x10037aad
mov ebx, dword [esi + 8]
cmp dword [esi + 4], ebx
jbe 0x10037b1a
call dword [0x10045170]
mov ebp, dword [esi + 4]
cmp ebp, dword [esi + 8]
mov dword [esp + 0x20], ebp
jbe 0x10037b2c
call dword [0x10045170]
cmp ebp, ebx
je 0x10037b92
mov ebp, dword [esi + 8]
mov ecx, ebp
sub ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [esp + 0x20]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, ebp
lea edx, [eax + eax*2]
lea edx, [ecx + edx*8]
mov eax, ebx
je 0x10037b8f
sub ecx, ebx
lea ebx, [ebx]
mov ebx, dword [eax]
mov dword [ecx + eax], ebx
mov ebx, dword [eax + 4]
mov dword [ecx + eax + 4], ebx
mov ebx, dword [eax + 8]
mov dword [ecx + eax + 8], ebx
mov ebx, dword [eax + 0xc]
mov dword [ecx + eax + 0xc], ebx
mov ebx, dword [eax + 0x10]
mov dword [ecx + eax + 0x10], ebx
mov ebx, dword [eax + 0x14]
mov dword [ecx + eax + 0x14], ebx
add eax, 0x18
cmp eax, ebp
jne 0x10037b60
mov dword [esi + 8], edx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
xor eax, eax
cmp dword [edi + 4], eax
mov dword [esp + 0x20], eax
jbe 0x10037efa
mov dword [esp + 0x18], eax
mov eax, dword [edi]
mov edx, dword [esp + 0x18]
add eax, edx
cmp byte [eax + 0x14], 0
jne 0x10037bca
push eax
lea ecx, [esp + 0x54]
call fcn.10039f70
jmp 0x10037ed5
mov edx, dword [eax + 4]
mov edi, dword [eax]
mov ebp, edx
not edx
or edx, edi
mov dword [esp + 0x64], edx
mov edx, dword [eax + 8]
and ebp, edi
mov dword [esp + 0x68], edx
mov dl, byte [eax + 0xc]
mov eax, dword [eax + 0x10]
xor edi, edi
mov dword [esp + 0x60], ebp
mov byte [esp + 0x6c], dl
mov dword [esp + 0x70], eax
mov dword [esp + 0x14], edi
lea ebx, [ebx]
test ecx, ecx
jne 0x10037c08
xor eax, eax
jmp 0x10037c1d
mov edx, esi
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
je 0x10037e81
test ecx, ecx
je 0x10037c42
mov edx, esi
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x10037c54
mov ebx, dword [0x10045170]
call ebx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
jmp 0x10037c5a
mov ebx, dword [0x10045170]
mov edx, dword [esp + 0x14]
cmp ebp, dword [edx + ecx]
jae 0x10037d9e
test ecx, ecx
je 0x10037c84
mov edx, esi
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x10037c8e
call ebx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x14]
cmp eax, dword [edx + ecx]
jb 0x10037e91
test ecx, ecx
mov dword [esp + 0x1c], eax
je 0x10037cc0
mov edx, esi
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x10037cca
call ebx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x14]
mov edx, dword [eax + ecx]
sub edx, 1
cmp ecx, esi
mov dword [esp + 0x64], edx
mov ebp, ecx
jbe 0x10037ce8
call ebx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], ebp
add ebp, eax
cmp ebp, esi
lea ebx, [esp + 0x40]
ja 0x10037cfe
cmp ebp, ecx
jae 0x10037d04
call dword [0x10045170]
lea ecx, [esp + 0x60]
push ecx
push ebp
push ebx
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x50]
call fcn.1003a020
mov ecx, dword [esp + 0x44]
add dword [esp + 0x14], 0x14
add edi, 1
test ecx, ecx
je 0x10037d46
mov esi, dword [esp + 0x48]
mov edx, esi
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x10037d54
call dword [0x10045170]
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
cmp eax, dword [edx + ecx + 4]
jbe 0x10037edd
test ecx, ecx
je 0x10037d83
mov edx, esi
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x10037d91
call dword [0x10045170]
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x64], edx
jmp 0x10037e65
test ecx, ecx
je 0x10037dbb
mov edx, esi
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x10037dc5
call ebx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x14]
cmp ebp, dword [eax + ecx + 4]
ja 0x10037e74
test ecx, ecx
je 0x10037df0
mov edx, esi
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x10037dfa
call ebx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov ebp, dword [esp + 0x14]
cmp dword [ecx + ebp + 4], 0xffffffff
je 0x10037edd
test ecx, ecx
je 0x10037e26
mov edx, esi
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x10037e30
call ebx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x64]
cmp edx, dword [ecx + ebp + 4]
jbe 0x10037edd
test ecx, ecx
je 0x10037e5b
mov edx, esi
sub edx, ecx
mov eax, 0x66666667
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x10037e65
call ebx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x14]
mov ebp, dword [eax + ecx + 4]
add ebp, 1
mov dword [esp + 0x60], ebp
add edi, 1
add dword [esp + 0x14], 0x14
jmp 0x10037c00
lea ecx, [esp + 0x60]
push ecx
lea ecx, [esp + 0x44]
call fcn.1003a0d0
jmp 0x10037ed5
cmp ecx, esi
mov ebp, ecx
jbe 0x10037ea1
call ebx
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
lea edx, [edi + edi*4]
lea edi, [ebp + edx*4]
cmp edi, esi
lea eax, [esp + 0x40]
mov ebx, eax
mov dword [esp + 0x2c], ebp
ja 0x10037eba
cmp edi, ecx
jae 0x10037ec0
call dword [0x10045170]
lea eax, [esp + 0x60]
push eax
push edi
push ebx
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x50]
call fcn.1003a020
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
add dword [esp + 0x18], 0x18
add eax, 1
cmp eax, dword [edi + 4]
mov dword [esp + 0x20], eax
jb 0x10037bad
test ecx, ecx
jne 0x10037f02
xor eax, eax
jmp 0x10037f15
sub esi, ecx
mov eax, 0x66666667
imul esi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0xc], eax
mov eax, dword [edi + 8]
test eax, eax
je 0x10037f28
push eax
call fcn.1003c06e
add esp, 4
mov eax, dword [edi + 0xc]
xor ecx, ecx
mov edx, 0x14
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1003c007
xor esi, esi
add esp, 4
cmp dword [edi + 0xc], esi
mov dword [edi + 8], eax
jbe 0x10037fad
xor ebp, ebp
mov ebx, dword [esp + 0x44]
test ebx, ebx
je 0x10037f73
mov ecx, dword [esp + 0x48]
sub ecx, ebx
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x10037f7d
call dword [0x10045170]
mov ebx, dword [esp + 0x44]
mov eax, dword [edi + 8]
mov edx, dword [ebx + ebp]
lea ecx, [ebx + ebp]
add eax, ebp
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov ecx, dword [ecx + 0x10]
add esi, 1
mov dword [eax + 0x10], ecx
add ebp, 0x14
cmp esi, dword [edi + 0xc]
jb 0x10037f50
mov eax, dword [esp + 0x54]
test eax, eax
je 0x10037fcc
mov ecx, dword [esp + 0x58]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [edi + 0x14], eax
mov eax, dword [edi + 0x10]
test eax, eax
je 0x10037fdf
push eax
call fcn.1003c06e
add esp, 4
mov eax, dword [edi + 0x14]
xor ecx, ecx
mov edx, 0x18
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1003c007
xor esi, esi
add esp, 4
cmp dword [edi + 0x14], esi
mov dword [edi + 0x10], eax
jbe 0x1003806b
xor ebp, ebp
mov ebx, dword [esp + 0x54]
test ebx, ebx
je 0x1003802a
mov ecx, dword [esp + 0x58]
sub ecx, ebx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x10038034
call dword [0x10045170]
mov ebx, dword [esp + 0x54]
mov eax, dword [edi + 0x10]
mov edx, dword [ebx + ebp]
lea ecx, [ebx + ebp]
mov dword [eax + ebp], edx
mov edx, dword [ecx + 4]
add eax, ebp
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [ecx + 0x10]
mov dword [eax + 0x10], edx
mov ecx, dword [ecx + 0x14]
add esi, 1
mov dword [eax + 0x14], ecx
add ebp, 0x18
cmp esi, dword [edi + 0x14]
jb 0x10038007
mov eax, dword [esp + 0x54]
xor ecx, ecx
cmp eax, ecx
je 0x10038080
push eax
call fcn.1003c05c
add esp, 4
xor ecx, ecx
mov eax, dword [esp + 0x44]
cmp eax, ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], ecx
je 0x1003809d
push eax
call fcn.1003c05c
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret