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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x80
push ebx
push ebp
movzx ebp, word [edx]
mov ebx, ecx
movzx ecx, word [edx + 8]
push esi
movzx esi, word [edx + 4]
movzx eax, word [ebx + 0x2c]
push edi
movzx edi, word [edx + 0xc]
movzx edx, word [edx + 0x10]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x54], ebp
cmp di, ax
jae 0x10038581
cmp dx, ax
jae 0x10038581
movzx eax, word [ebx + 0x50]
cmp si, ax
jae 0x10038581
cmp cx, ax
jae 0x10038581
cmp bp, word [ebx + 0x74]
jae 0x10038581
mov eax, dword [ebx + 0x34]
mov ebp, edx
shl ebp, 3
shl edi, 3
shl ecx, 3
mov dword [esp + 0x88], ebp
mov edx, dword [eax + ebp]
mov dword [esp + 0x7c], edx
mov edx, dword [eax + edi]
mov dword [esp + 0x58], edx
mov edx, dword [eax + ebp]
sub edx, dword [eax + edi]
mov ebp, dword [eax + ebp + 4]
mov dword [esp + 0x10], edx
mov edx, dword [eax + edi + 4]
sub ebp, edx
mov eax, dword [ebx + 0x58]
mov dword [esp + 0x84], edi
mov edi, esi
mov dword [esp + 0x80], ecx
add ecx, eax
shl edi, 3
mov dword [esp + 0x30], ebp
neg ebp
mov dword [esp + 0x5c], edi
mov esi, dword [ecx]
mov dword [esp + 0x78], esi
mov esi, dword [eax + edi]
mov dword [esp + 0x40], esi
mov esi, dword [ecx]
sub esi, dword [eax + edi]
mov eax, dword [eax + edi + 4]
sub edx, eax
mov ecx, dword [ecx + 4]
mov edi, dword [esp + 0x58]
sub ecx, eax
sub edi, dword [esp + 0x40]
mov eax, esi
mov dword [esp + 0x74], edx
cdq
mov dword [esp + 0x3c], esi
mov esi, eax
mov dword [esp + 0x2c], eax
mov eax, ebp
mov dword [esp + 0x14], ecx
mov ecx, edx
mov dword [esp + 0x44], edx
cdq
mov dword [esp + 0x1c], ebp
mov ebp, eax
mov eax, dword [esp + 0x3c]
test eax, eax
jns 0x10038254
neg esi
adc ecx, 0
neg ecx
sar eax, 0x1f
and eax, 0xfffffffe
inc eax
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x4c], eax
jge 0x1003826d
neg ebp
adc edx, 0
neg edx
push ecx
push esi
push edx
neg eax
push ebp
mov dword [esp + 0x58], eax
call fcn.101201d0
mov ecx, eax
mov eax, dword [esp + 0x48]
add ecx, 0x20
adc edx, 0
shrd ecx, edx, 6
cmp dword [esp + 0x1c], 0
mov edx, ecx
cmovge eax, dword [esp + 0x4c]
neg edx
test eax, eax
mov eax, dword [esp + 0x14]
cmovns edx, ecx
mov dword [esp + 0x60], edx
cdq
mov dword [esp + 0x50], eax
mov esi, edx
mov dword [esp + 0x20], eax
mov ecx, esi
mov eax, dword [esp + 0x10]
cdq
mov dword [esp + 0x38], eax
mov ebp, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
test eax, eax
jns 0x100382de
mov eax, dword [esp + 0x20]
neg eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
adc ecx, 0
neg ecx
sar eax, 0x1f
and eax, 0xfffffffe
inc eax
cmp dword [esp + 0x10], 0
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x18]
jge 0x100382fb
neg eax
adc edx, 0
neg edx
mov ebx, dword [esp + 0x34]
push ecx
push dword [esp + 0x24]
mov dword [esp + 0x20], ebx
neg dword [esp + 0x20]
push edx
push eax
call fcn.101201d0
mov ecx, eax
mov eax, dword [esp + 0x18]
add ecx, 0x20
adc edx, 0
shrd ecx, edx, 6
cmp dword [esp + 0x10], 0
mov edx, ecx
cmovge eax, ebx
mov ebx, dword [esp + 0x68]
neg edx
test eax, eax
mov eax, ebp
cmovns edx, ecx
add edx, dword [esp + 0x60]
cmp dword [esp + 0x3c], 0
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x38]
jge 0x10038362
mov ecx, dword [esp + 0x2c]
neg ecx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x44]
adc ecx, 0
neg ecx
jmp 0x10038366
mov ecx, dword [esp + 0x44]
cmp dword [esp + 0x10], 0
jge 0x10038374
neg edx
adc eax, 0
neg eax
push ecx
push dword [esp + 0x30]
push eax
push edx
call fcn.101201d0
add eax, 0x20
adc edx, 0
shrd eax, edx, 6
cmp dword [esp + 0x10], 0
mov edx, dword [esp + 0x48]
mov ecx, eax
cmovge edx, dword [esp + 0x4c]
neg ecx
test edx, edx
cmovns ecx, eax
cmp dword [esp + 0x14], 0
mov eax, dword [esp + 0x30]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x50]
cdq
jge 0x100383bc
neg ecx
adc esi, 0
neg esi
cmp dword [esp + 0x30], 0
jge 0x100383ca
neg eax
adc edx, 0
neg edx
push esi
push ecx
push edx
push eax
call fcn.101201d0
mov ecx, eax
add ecx, 0x20
adc edx, 0
shrd ecx, edx, 6
cmp dword [esp + 0x30], 0
mov edx, dword [esp + 0x18]
mov eax, ecx
cmovge edx, dword [esp + 0x34]
neg eax
test edx, edx
cmovns eax, ecx
add eax, dword [esp + 0x68]
cdq
mov esi, eax
mov eax, dword [esp + 0x20]
xor esi, edx
sub esi, edx
cdq
xor eax, edx
sub eax, edx
imul ecx, eax, 0x13
cmp ecx, esi
jle 0x1003850a
mov eax, edi
cdq
mov esi, eax
mov eax, dword [esp + 0x1c]
mov ecx, edx
cdq
test edi, edi
jns 0x1003842c
neg esi
adc ecx, 0
neg ecx
sar edi, 0x1f
and edi, 0xfffffffe
inc edi
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x1c]
test edi, edi
jns 0x10038446
neg eax
adc edx, 0
neg edx
push ecx
push esi
push edx
push eax
call fcn.101201d0
mov ecx, eax
mov eax, dword [esp + 0x68]
add ecx, 0x20
adc edx, 0
neg eax
shrd ecx, edx, 6
test edi, edi
mov esi, ecx
cmovns eax, dword [esp + 0x68]
neg esi
test eax, eax
cmovns esi, ecx
mov ecx, dword [esp + 0x74]
mov eax, ecx
cdq
test ecx, ecx
jns 0x10038483
neg eax
adc edx, 0
neg edx
mov edi, dword [esp + 0x10]
sar ecx, 0x1f
and ecx, 0xfffffffe
inc ecx
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x38]
test edi, edi
jns 0x100384a1
neg ecx
adc ebp, 0
neg ebp
push edx
push eax
push ebp
push ecx
call fcn.101201d0
push dword [esp + 0x20]
mov ecx, eax
mov eax, dword [esp + 0x78]
add ecx, 0x20
adc edx, 0
neg eax
shrd ecx, edx, 6
mov edx, dword [esp + 0x40]
test edi, edi
mov edi, ecx
cmovns eax, dword [esp + 0x78]
neg edi
test eax, eax
mov eax, dword [esp + 0x58]
movzx ebp, ax
cmovns edi, ecx
add edi, esi
mov ecx, edi
call fcn.10009380
mov esi, dword [ebx + 0x7c]
mov ecx, edi
add eax, dword [esp + 0x40]
push dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov dword [esi + ebp*8], eax
call fcn.10009380
mov ecx, dword [ebx + 0x58]
mov esi, dword [esp + 0x5c]
add eax, dword [esi + ecx + 4]
jmp 0x10038568
mov eax, dword [esp + 0x54]
mov ecx, dword [ebx + 0x7c]
mov esi, dword [esp + 0x5c]
movzx ebp, ax
mov eax, dword [esp + 0x40]
add eax, dword [esp + 0x78]
add eax, dword [esp + 0x58]
add eax, dword [esp + 0x7c]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [ecx + ebp*8], eax
mov ecx, dword [ebx + 0x58]
mov edx, dword [ebx + 0x34]
mov eax, dword [ecx + esi + 4]
mov esi, dword [esp + 0x80]
add eax, dword [ecx + esi + 4]
mov ecx, dword [esp + 0x84]
add eax, dword [edx + ecx + 4]
mov ecx, dword [esp + 0x88]
add eax, dword [edx + ecx + 4]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov ecx, dword [ebx + 0x7c]
mov dword [ecx + ebp*8 + 4], eax
mov eax, dword [ebx + 0x84]
or byte [eax + ebp], 0x18
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebx + 0x235], 0
je 0x10038591
mov dword [ebx + 0xc], 0x86
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret