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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x50
mov edi, dword [esp + 0x68]
shr edi, 1
mov ebp, dword [esp + 0x6c]
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
shr ebx, 1
add ebp, 0x80000000
adc ebp, 0x80000000
and eax, 0x7fffffff
sar ebp, 1
cmp eax, 0xa
je 0x100251bd
cmp eax, 0xb
je 0x10025143
test eax, eax
je 0x100250c9
cmp eax, 0x3e8
je 0x1002504f
cmp eax, 0x3ee
je 0x10024fd5
cmp eax, 0x3ed
je 0x10024f5b
cmp eax, 2
je 0x10024ee1
cmp eax, 0x3ea
je 0x10024e6a
cmp eax, 3
je 0x10024df0
cmp eax, 4
je 0x10024d74
cmp eax, 1
je 0x10024abc
cmp eax, 0xc
jne 0x10024aa4
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x7c]
mov eax, dword [edx + 0xc]
and ecx, 0x80000000
push ecx
mov esi, dword [esp + 0x70]
push esi
mov ecx, dword [esp + 0x70]
push ecx
push eax
push eax
push dword [edx + 8]
push dword [edx + 4]
push dword [edx]
push ebx
mov eax, dword [esp + 0x94]
push eax
mov eax, dword [esp + 0x8c]
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
call dword [0x1031cf80]
add esp, 0x34
jmp 0x10024b33
cmp eax, 0x270f
je 0x10024b33
mov eax, 0xffffffff
add esp, 0x50
pop ebx
pop ebp
pop esi
pop edi
ret
mov edx, dword [esp + 0x78]
mov dword [esp + 0x38], ebp
mov eax, edx
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x74]
mov esi, ebx
imul esi, edx
add eax, 0x80000000
adc eax, 0x80000000
add esi, edi
sar eax, 1
mov ecx, eax
imul ecx, ebp
add ecx, esi
mov ebp, dword [esp + 0x7c]
and ebp, 0x80000000
push ebp
push ebx
mov ebx, dword [esp + 0x70]
push ebx
push eax
push edx
push ecx
push esi
push edi
mov ebx, dword [esp + 0x60]
push ebx
mov eax, dword [esp + 0x94]
push eax
mov eax, dword [esp + 0x8c]
push dword [eax + 4]
push dword [eax + 8]
push dword [eax]
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x6c]
call dword [0x1031cf80]
add esp, 0x34
mov ecx, dword [esp + 0x68]
and ecx, 0xf
je 0x10024c4e
mov esi, dword [esp + 0x6c]
neg ecx
lea edx, [ecx + 0x10]
xor eax, eax
test esi, esi
jle 0x10024bb9
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x34], ecx
mov esi, eax
imul esi, dword [esp + 0x70]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], ebx
mov ebx, eax
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x4c]
mov edi, dword [edx]
add edi, dword [esp + 0x68]
add edi, esi
movzx eax, byte [edi - 1]
and eax, 0xffff
mov ah, al
push ecx
mov edx, eax
shl eax, 0x10
shr ecx, 2
or eax, edx
rep stosd dword es:[edi], eax
pop ecx
and ecx, 3
rep stosb byte es:[edi], al
add esi, dword [esp + 0x70]
add ebx, 1
cmp ebx, ebp
jl 0x10024b70
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
xor eax, eax
test ebp, ebp
jle 0x10024c4e
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x3c], edi
mov esi, eax
imul esi, ebx
add ecx, 0x10
sar ecx, 1
mov dword [esp + 0x34], ecx
mov dword [esp + 0x40], ebx
mov ebx, eax
mov ecx, dword [esp + 0x34]
mov edi, dword [ebp + 4]
add edi, dword [esp + 0x3c]
add edi, esi
movzx eax, byte [edi - 1]
and eax, 0xffff
mov ah, al
push ecx
mov edx, eax
shl eax, 0x10
shr ecx, 2
or eax, edx
rep stosd dword es:[edi], eax
pop ecx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [esp + 0x34]
mov edi, dword [ebp + 8]
add edi, dword [esp + 0x3c]
add edi, esi
movzx eax, byte [edi - 1]
and eax, 0xffff
mov ah, al
push ecx
mov edx, eax
shl eax, 0x10
shr ecx, 2
or eax, edx
rep stosd dword es:[edi], eax
pop ecx
and ecx, 3
rep stosb byte es:[edi], al
add esi, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
add ebx, 1
cmp ebx, edx
jl 0x10024be3
mov ebp, edx
mov ebx, dword [esp + 0x40]
mov ecx, dword [esp + 0x6c]
and ecx, 0xf
je 0x10024d6a
mov eax, dword [esp + 0x68]
neg ecx
lea edi, [ecx + 0x10]
lea edx, [eax + 0xf]
shr edx, 4
add edx, edx
add edx, edx
mov dword [esp + 0x44], edx
lea esi, [edx + edx]
add esi, esi
xor edx, edx
test edi, edi
jle 0x10024ce6
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x70]
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x3c], ecx
imul eax, esi
mov dword [esp + 0x40], ebx
mov ebx, edi
mov dword [esp + 0x4c], eax
mov eax, esi
neg eax
mov dword [esp + 0x48], eax
mov eax, edx
imul eax, esi
mov esi, dword [esp + 0x34]
mov dword [esp + 0x34], esi
mov ecx, dword [esp + 0x44]
mov esi, dword [ebp]
add esi, dword [esp + 0x4c]
lea edi, [esi + eax]
add esi, dword [esp + 0x48]
rep movsd dword es:[edi], dword [esi]
add eax, dword [esp + 0x70]
add edx, 1
cmp edx, ebx
jl 0x10024cb7
mov esi, dword [esp + 0x34]
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
xor edx, edx
add ecx, 0x10
sar ecx, 1
test ecx, ecx
jle 0x10024d6a
imul ebp, ebx
mov dword [esp + 0x3c], ecx
mov edi, ebx
mov dword [esp + 0x40], ebx
neg edi
mov dword [esp + 0x44], edi
add esi, 0x80000000
adc esi, 0x80000000
mov eax, edx
imul eax, ebx
sar esi, 1
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x34], esi
mov ecx, dword [esp + 0x34]
mov esi, dword [ebx + 4]
lea edi, [esi + ebp]
add esi, dword [esp + 0x44]
add edi, eax
add esi, ebp
push ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
pop ecx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x34]
mov esi, dword [ebx + 8]
lea edi, [esi + ebp]
add esi, dword [esp + 0x44]
add edi, eax
add esi, ebp
push ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
pop ecx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
add eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
add edx, 1
cmp edx, ecx
jl 0x10024d1f
xor eax, eax
add esp, 0x50
pop ebx
pop ebp
pop esi
pop edi
ret
mov edx, dword [esp + 0x78]
mov dword [esp + 0x38], ebp
mov eax, edx
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x74]
mov esi, ebx
imul esi, edx
add eax, 0x80000000
adc eax, 0x80000000
add esi, edi
sar eax, 1
mov ecx, eax
imul ecx, ebp
add ecx, esi
mov ebp, dword [esp + 0x7c]
and ebp, 0x80000000
push ebp
push ebx
mov ebx, dword [esp + 0x70]
push ebx
push eax
push edx
push ecx
push esi
push edi
mov ebx, dword [esp + 0x60]
push ebx
mov eax, dword [esp + 0x94]
push eax
mov eax, dword [esp + 0x8c]
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
mov edi, dword [esp + 0x70]
mov ebp, dword [esp + 0x6c]
call dword [0x1031cf80]
add esp, 0x34
jmp 0x10024b33
test edx, edx
je 0x10024e00
mov eax, dword [0x1031cf3c]
mov edx, 0x1002fbbc
jmp 0x10024e0a
mov eax, dword [0x1031cf1c]
mov edx, 0x1002d8b8
mov esi, dword [esp + 0x64]
mov ecx, dword [esi + 4]
mov dword [esp + 0x30], 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esi + 8]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x74]
and ecx, 0x80000000
mov dword [esp + 0x24], ecx
mov ecx, dword [esi]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x78]
call fcn.10025238
jmp 0x10024b33
test edx, edx
je 0x10024e7a
mov eax, dword [0x1031cf38]
mov edx, 0x1002f984
jmp 0x10024e84
mov eax, dword [0x1031cf18]
mov edx, 0x1002d73c
mov esi, dword [esp + 0x64]
mov ecx, dword [esi]
mov esi, dword [esi + 8]
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x70]
mov dword [esp + 0x30], 2
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x68]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x74]
and esi, 0x80000000
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x78]
call fcn.10025238
jmp 0x10024b33
test edx, edx
je 0x10024ef1
mov eax, dword [0x1031cf38]
mov edx, 0x1002f984
jmp 0x10024efb
mov eax, dword [0x1031cf18]
mov edx, 0x1002d73c
mov esi, dword [esp + 0x64]
mov ecx, dword [esi + 4]
mov dword [esp + 0x30], 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esi + 8]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x74]
and ecx, 0x80000000
mov dword [esp + 0x24], ecx
mov ecx, dword [esi]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x78]
call fcn.10025238
jmp 0x10024b33
test edx, edx
je 0x10024f6b
mov eax, dword [0x1031cf34]
mov edx, 0x1002f484
jmp 0x10024f75
mov eax, dword [0x1031cf14]
mov edx, 0x1002d444
mov esi, dword [esp + 0x64]
mov ecx, dword [esi + 4]
mov dword [esp + 0x30], 4
mov dword [esp + 0xc], ecx
mov ecx, dword [esi + 8]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x74]
and ecx, 0x80000000
mov dword [esp + 0x24], ecx
mov ecx, dword [esi]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x78]
call fcn.10025238
jmp 0x10024b33
test edx, edx
je 0x10024fe5
mov eax, dword [0x1031cf30]
mov edx, 0x1002ef80
jmp 0x10024fef
mov eax, dword [0x1031cf10]
mov edx, 0x1002d14c
mov esi, dword [esp + 0x64]
mov ecx, dword [esi + 4]
mov dword [esp + 0x30], 4
mov dword [esp + 0xc], ecx
mov ecx, dword [esi + 8]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x74]
and ecx, 0x80000000
mov dword [esp + 0x24], ecx
mov ecx, dword [esi]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x78]
call fcn.10025238
jmp 0x10024b33
test edx, edx
je 0x1002505f
mov eax, dword [0x1031cf2c]
mov edx, 0x1002ea80
jmp 0x10025069
mov eax, dword [0x1031cf0c]
mov edx, 0x1002ce54
mov esi, dword [esp + 0x64]
mov ecx, dword [esi + 4]
mov dword [esp + 0x30], 4
mov dword [esp + 0xc], ecx
mov ecx, dword [esi + 8]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x74]
and ecx, 0x80000000
mov dword [esp + 0x24], ecx
mov ecx, dword [esi]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x78]
call fcn.10025238
jmp 0x10024b33
test edx, edx
je 0x100250d9
mov eax, dword [0x1031cf28]
mov edx, 0x1002e584
jmp 0x100250e3
mov eax, dword [0x1031cf08]
mov edx, 0x1002cb60
mov esi, dword [esp + 0x64]
mov ecx, dword [esi + 4]
mov dword [esp + 0x30], 3
mov dword [esp + 0xc], ecx
mov ecx, dword [esi + 8]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x74]
and ecx, 0x80000000
mov dword [esp + 0x24], ecx
mov ecx, dword [esi]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x78]
call fcn.10025238
jmp 0x10024b33
test edx, edx
je 0x10025153
mov eax, dword [0x1031cf24]
mov edx, 0x1002dfdc
jmp 0x1002515d
mov eax, dword [0x1031cf04]
mov edx, 0x1002c818
mov esi, dword [esp + 0x64]
mov ecx, dword [esi + 4]
mov dword [esp + 0x30], 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esi + 8]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x74]
and ecx, 0x80000000
mov dword [esp + 0x24], ecx
mov ecx, dword [esi]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x78]
call fcn.10025238
jmp 0x10024b33
test edx, edx
je 0x100251cd
mov eax, dword [0x1031cf20]
mov edx, 0x1002da34
jmp 0x100251d7
mov eax, dword [0x1031cf00]
mov edx, 0x1002c4d0
mov esi, dword [esp + 0x64]
mov ecx, dword [esi + 4]
mov dword [esp + 0x30], 2
mov dword [esp + 0xc], ecx
mov ecx, dword [esi + 8]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x74]
and ecx, 0x80000000
mov dword [esp + 0x24], ecx
mov ecx, dword [esi]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x78]
call fcn.10025238
jmp 0x10024b33