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

Disassembly:
mov ecx, dword [0x63aa7440]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x44]
cmp eax, dword [ecx + 8]
jbe 0x63874eb6
sub esp, 0xc4
mov ebx, dword [esp + 0xc8]
mov ebp, dword [ebx + 0x10]
mov esi, dword [esp + 0xcc]
sub esi, ebp
mov edi, dword [esp + 0xd4]
sub edi, ebp
mov ebp, dword [ebx + 0x14]
mov eax, ebx
mov ebx, dword [esp + 0xdc]
mov ecx, dword [ebx + 0x2c]
shl esi, 2
mov dword [esp + 0x40], esi
shl edi, 2
mov dword [esp + 0x3c], edi
mov edx, edi
mov edi, dword [esp + 0xd0]
sub edi, ebp
mov esi, dword [esp + 0xd8]
sub esi, ebp
mov dword [esp + 0x28], esi
cmp ecx, 1
jg 0x63874549
test ecx, ecx
jne 0x63874521
mov ebp, dword [esp + 0xe0]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xa8]
jmp 0x63874ced
cmp ecx, 1
jne 0x638745a2
mov ebp, dword [esp + 0xe0]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x7c]
jmp 0x63874aad
cmp ecx, 2
jne 0x63874577
mov ebp, dword [esp + 0xe0]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x8c]
jmp 0x63874830
cmp ecx, 3
jne 0x638745a2
mov ebp, dword [esp + 0xe0]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x94]
jmp 0x638745e9
mov byte [esp + 0xe8], 0
add esp, 0xc4
ret
mov eax, dword [esp + 0x2c]
inc eax
mov edx, dword [esp + 0x4c]
inc edx
mov ebx, dword [esp + 0xc8]
mov ebp, dword [esp + 0xe0]
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0xdc]
mov edi, eax
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0xc8]
mov edx, dword [esp + 0x3c]
cmp edi, esi
je 0x63874697
mov esi, dword [eax + 4]
mov edx, dword [eax + 0xc]
imul edx, edi
cmp esi, edx
jb 0x638747e8
mov dword [esp + 0x2c], edi
mov edi, dword [eax]
mov dword [esp + 0xc0], edi
mov eax, dword [eax + 8]
sub eax, edx
neg eax
sar eax, 0x1f
and eax, edx
mov ecx, dword [ebx + 0x34]
mov dword [esp + 0xa4], ecx
mov edi, dword [esp + 0x4c]
sub edi, ecx
imul edi, dword [ebx + 0x24]
mov dword [esp + 0xa0], edi
mov edi, dword [ebx + 0x30]
sub ebp, edi
mov dword [esp + 0x9c], ebp
mov edi, dword [esp + 0x4c]
shr edi, 0x1f
mov ebp, dword [esp + 0x4c]
add edi, ebp
sar edi, 1
shr ecx, 0x1f
mov ebp, dword [esp + 0xa4]
add ebp, ecx
sar ebp, 1
sub edi, ebp
imul edi, dword [ebx + 0x28]
mov ebp, dword [esp + 0xc0]
add ebp, eax
mov dword [esp + 0xb8], ebp
sub esi, edx
mov eax, ebp
mov ebp, dword [esp + 0x9c]
mov ecx, ebx
mov ebx, dword [esp + 0xa0]
add ebx, ebp
add ebp, edi
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
jmp 0x638746ed
mov byte [esp + 0xe8], 1
add esp, 0xc4
ret
mov eax, esi
sub eax, edx
neg eax
sar eax, 0x1f
and edx, eax
mov eax, dword [esp + 0xb8]
mov byte [eax + edx], cl
mov byte [eax + edx + 1], bl
xchg ebp, ebx
mov byte [eax + edx + 2], bl
xchg ebp, ebx
mov byte [eax + edx + 3], 0xff
mov ecx, dword [esp + 0x18]
lea ebx, [ecx + 1]
mov ecx, dword [esp + 0x74]
lea ebp, [ecx + 1]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0xdc]
mov ecx, edx
mov edx, edi
mov edi, dword [esp + 0x3c]
cmp edx, edi
je 0x638745b1
mov edi, dword [ecx + 4]
cmp ebx, edi
jae 0x638747df
mov edi, dword [ecx]
mov eax, dword [ecx + 0x10]
movzx edi, byte [ebx + edi]
cmp ebp, eax
jae 0x638747d6
mov dword [esp + 0x18], ebx
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x1c]
movzx eax, byte [ebp + eax]
cmp ebp, ebx
jae 0x638747cd
imul ebx, edi, 0x10101
mov edi, dword [ecx + 0x18]
movzx edi, byte [ebp + edi]
imul ecx, edi, 0x166e9
lea ecx, [ebx + ecx - 0xb37480]
test ecx, 0xff000000
jne 0x63874750
sar ecx, 0x10
jmp 0x63874755
sar ecx, 0x1f
not ecx
mov dword [esp + 8], ebx
mov dword [esp + 0x74], ebp
imul ebp, eax, 0x581a
sub ebx, ebp
imul ebp, edi, 0xb6d2
sub ebx, ebp
add ebx, 0x877600
test ebx, 0xff000000
jne 0x63874780
sar ebx, 0x10
jmp 0x63874785
sar ebx, 0x1f
not ebx
imul ebp, eax, 0x1c5a2
mov edi, dword [esp + 8]
lea ebp, [ebp + edi - 0xe2d100]
test ebp, 0xff000000
jne 0x638747a3
sar ebp, 0x10
jmp 0x638747ac
sar ebp, 0x1f
xchg ebp, ebx
not ebx
xchg ebp, ebx
lea edi, [edx + 4]
cmp esi, edi
jb 0x638747c4
cmp edx, edi
jbe 0x638746a6
mov eax, edx
mov ecx, edi
call fcn.637ac1f0
mov ecx, edi
mov edx, esi
call fcn.637ac1e0
mov eax, ebp
mov ecx, ebx
call fcn.637ac140
mov ecx, eax
mov eax, ebp
call fcn.637ac140
mov eax, ebx
mov ecx, edi
call fcn.637ac140
mov eax, edx
mov ecx, esi
call fcn.637ac1a0
mov eax, dword [esp + 0x30]
lea edi, [eax + 1]
mov eax, dword [esp + 0x50]
inc eax
mov edx, dword [esp + 0xe0]
mov ebx, dword [esp + 0xc8]
mov esi, dword [esp + 0x40]
mov ecx, esi
mov edx, ebp
mov ebx, dword [esp + 0xdc]
mov ebp, dword [esp + 0xe0]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xc8]
cmp edi, esi
je 0x63874697
mov esi, dword [eax + 4]
mov edx, dword [eax + 0xc]
imul edx, edi
cmp esi, edx
jb 0x63874a65
mov dword [esp + 0x30], edi
mov edi, dword [eax]
mov dword [esp + 0xc0], edi
mov eax, dword [eax + 8]
sub eax, edx
neg eax
sar eax, 0x1f
and eax, edx
mov edi, dword [esp + 0x50]
shr edi, 0x1f
mov ebp, dword [esp + 0x50]
add edi, ebp
sar edi, 1
mov ecx, dword [ebx + 0x34]
mov dword [esp + 0xa4], ecx
sub ebp, ecx
imul ebp, dword [ebx + 0x24]
mov dword [esp + 0xa0], ebp
shr ecx, 0x1f
mov ebp, dword [esp + 0xa4]
add ebp, ecx
sar ebp, 1
sub edi, ebp
imul edi, dword [ebx + 0x28]
mov dword [esp + 0xa4], edi
mov ebp, dword [ebx + 0x30]
mov dword [esp + 0x9c], ebp
mov ecx, ebx
mov ebx, dword [esp + 0xe0]
sub ebx, ebp
shr ebp, 0x1f
mov edi, dword [esp + 0x9c]
add ebp, edi
sar ebp, 1
mov edi, dword [esp + 0xc0]
add edi, eax
sub esi, edx
mov dword [esp + 0x64], esi
mov eax, edi
mov edi, dword [esp + 0xa0]
add ebx, edi
mov edi, dword [esp + 0xa4]
sub edi, ebp
mov dword [esp + 0x6c], edi
mov ebp, dword [esp + 0x3c]
mov edx, dword [esp + 0xe0]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x84]
jmp 0x63874959
sub edi, esi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, esi
mov byte [eax + edi], dl
mov byte [eax + edi + 1], bl
xchg ebp, ebx
mov byte [eax + edi + 2], bl
xchg ebp, ebx
mov byte [eax + edi + 3], 0xff
mov edx, dword [esp + 0x5c]
inc edx
mov ebx, dword [esp + 0x1c]
inc ebx
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0xdc]
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x64]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xdc]
mov esi, dword [esp + 0x44]
cmp esi, ebp
je 0x638747f1
mov dword [esp + 0x5c], edx
shr edx, 0x1f
mov ebp, dword [esp + 0x5c]
add edx, ebp
sar edx, 1
mov ebp, dword [ecx + 4]
add edx, edi
cmp ebx, ebp
jae 0x63874a5c
mov ebp, dword [ecx]
mov edi, dword [ecx + 0x10]
movzx ebp, byte [ebp + ebx]
cmp edi, edx
jbe 0x63874a53
mov dword [esp + 0x1c], ebx
mov edi, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x1c]
movzx edi, byte [edi + edx]
cmp ebx, edx
jbe 0x63874a4a
imul ebx, ebp, 0x10101
mov ebp, dword [ecx + 0x18]
movzx ebp, byte [ebp + edx]
imul edx, ebp, 0x166e9
lea edx, [edx + ebx - 0xb37480]
test edx, 0xff000000
jne 0x638749d1
sar edx, 0x10
jmp 0x638749d6
sar edx, 0x1f
not edx
mov dword [esp + 0xc], ebx
imul ecx, edi, 0x581a
sub ebx, ecx
imul ebp, ebp, 0xb6d2
sub ebx, ebp
add ebx, 0x877600
test ebx, 0xff000000
jne 0x638749fd
sar ebx, 0x10
jmp 0x63874a02
sar ebx, 0x1f
not ebx
imul ebp, edi, 0x1c5a2
mov edi, dword [esp + 0xc]
lea ebp, [ebp + edi - 0xe2d100]
test ebp, 0xff000000
jne 0x63874a20
sar ebp, 0x10
jmp 0x63874a29
sar ebp, 0x1f
xchg ebp, ebx
not ebx
xchg ebp, ebx
lea ecx, [esi + 4]
mov edi, dword [esp + 0x64]
cmp edi, ecx
jb 0x63874a43
cmp esi, ecx
jbe 0x63874910
mov eax, esi
call fcn.637ac1f0
mov edx, edi
call fcn.637ac1e0
mov eax, edx
mov ecx, ebx
call fcn.637ac140
mov eax, edx
mov ecx, edi
call fcn.637ac140
mov eax, ebx
mov ecx, ebp
call fcn.637ac140
mov eax, edx
mov ecx, esi
call fcn.637ac1a0
mov eax, dword [esp + 0x34]
lea edi, [eax + 1]
mov eax, dword [esp + 0x54]
inc eax
mov ecx, dword [esp + 0xe0]
mov ebx, dword [esp + 0xc8]
mov esi, dword [esp + 0x40]
mov ecx, esi
mov edx, ebp
mov ebx, dword [esp + 0xdc]
mov ebp, dword [esp + 0xe0]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xc8]
cmp edi, esi
je 0x63874697
mov esi, dword [eax + 4]
mov edx, dword [eax + 0xc]
imul edx, edi
cmp esi, edx
jb 0x63874cae
mov dword [esp + 0x34], edi
mov dword [esp + 0xa4], edx
mov edi, dword [eax]
mov dword [esp + 0xc0], edi
mov eax, dword [eax + 8]
sub eax, edx
neg eax
sar eax, 0x1f
and eax, edx
mov ecx, dword [ebx + 0x24]
mov edx, dword [ebx + 0x30]
sub ebp, edx
mov dword [esp + 0xa0], ebp
mov ebp, dword [ebx + 0x34]
mov edi, dword [esp + 0x54]
sub edi, ebp
imul ecx, edi
mov ebp, dword [ebx + 0x28]
imul edi, ebp
mov ebp, edx
shr edx, 0x1f
add ebp, edx
sar ebp, 1
mov edx, ebx
mov ebx, dword [esp + 0xc0]
add ebx, eax
mov eax, ebx
mov ebx, dword [esp + 0xa4]
sub esi, ebx
mov dword [esp + 0x68], esi
mov ebx, dword [esp + 0xa0]
add ebx, ecx
sub edi, ebp
mov dword [esp + 0x70], edi
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xb0]
jmp 0x63874ba0
sub edx, esi
neg edx
sar edx, 0x1f
and edx, esi
mov byte [eax + edx], cl
mov byte [eax + edx + 1], bl
xchg ebp, ebx
mov byte [eax + edx + 2], bl
xchg ebp, ebx
mov byte [eax + edx + 3], 0xff
mov ecx, dword [esp + 0x60]
inc ecx
mov edx, dword [esp + 0x20]
lea ebx, [edx + 1]
mov ebp, dword [esp + 0x3c]
mov edx, dword [esp + 0xdc]
mov esi, dword [esp + 0x70]
mov esi, dword [esp + 0x68]
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x48]
cmp esi, ebp
je 0x63874a6e
mov dword [esp + 0x60], ecx
shr ecx, 0x1f
mov ebp, dword [esp + 0x60]
add ecx, ebp
sar ecx, 1
mov ebp, dword [edx + 4]
add ecx, edi
cmp ebx, ebp
jae 0x63874ca5
mov ebp, dword [edx]
mov edi, dword [edx + 0x10]
movzx ebp, byte [ebp + ebx]
cmp edi, ecx
jbe 0x63874c9c
mov dword [esp + 0x20], ebx
mov edi, dword [edx + 0xc]
mov ebx, dword [edx + 0x1c]
movzx edi, byte [edi + ecx]
cmp ebx, ecx
jbe 0x63874c93
imul ebx, ebp, 0x10101
mov ebp, dword [edx + 0x18]
movzx ebp, byte [ebp + ecx]
imul ecx, ebp, 0x166e9
lea ecx, [ecx + ebx - 0xb37480]
test ecx, 0xff000000
jne 0x63874c18
sar ecx, 0x10
jmp 0x63874c1d
sar ecx, 0x1f
not ecx
mov dword [esp + 0x10], ebx
imul edx, edi, 0x581a
sub ebx, edx
imul ebp, ebp, 0xb6d2
sub ebx, ebp
add ebx, 0x877600
test ebx, 0xff000000
jne 0x63874c44
sar ebx, 0x10
jmp 0x63874c49
sar ebx, 0x1f
not ebx
imul ebp, edi, 0x1c5a2
mov edi, dword [esp + 0x10]
lea ebp, [ebp + edi - 0xe2d100]
test ebp, 0xff000000
jne 0x63874c67
sar ebp, 0x10
jmp 0x63874c70
sar ebp, 0x1f
xchg ebp, ebx
not ebx
xchg ebp, ebx
lea edi, [esi + 4]
mov edx, dword [esp + 0x68]
cmp edx, edi
jb 0x63874c8c
cmp esi, edi
jbe 0x63874b5c
mov eax, esi
mov ecx, edi
call fcn.637ac1f0
mov ecx, edi
call fcn.637ac1e0
mov eax, ecx
mov ecx, ebx
call fcn.637ac140
mov eax, ecx
mov ecx, edi
call fcn.637ac140
mov eax, ebx
mov ecx, ebp
call fcn.637ac140
mov eax, edx
mov ecx, esi
call fcn.637ac1a0
mov eax, dword [esp + 0x38]
inc eax
mov ecx, dword [esp + 0x58]
inc ecx
mov ebp, dword [esp + 0xe0]
mov ebx, dword [esp + 0xc8]
mov esi, dword [esp + 0x28]
mov edx, edi
mov ebx, dword [esp + 0xdc]
mov edi, eax
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0x40]
cmp edi, esi
je 0x63874697
mov esi, dword [eax + 4]
mov edx, dword [eax + 0xc]
imul edx, edi
cmp esi, edx
jb 0x63874eac
mov dword [esp + 0x38], edi
mov dword [esp + 0xa4], edx
mov edi, dword [eax]
mov dword [esp + 0xc0], edi
mov eax, dword [eax + 8]
sub eax, edx
neg eax
sar eax, 0x1f
and eax, edx
mov ecx, dword [ebx + 0x24]
mov edx, dword [ebx + 0x34]
mov edi, dword [esp + 0x58]
sub edi, edx
imul ecx, edi
mov edx, dword [ebx + 0x28]
imul edi, edx
mov edx, dword [ebx + 0x30]
sub ebp, edx
mov edx, ebx
mov ebx, dword [esp + 0xc0]
add ebx, eax
mov dword [esp + 0xbc], ebx
mov eax, ebx
mov ebx, dword [esp + 0xa4]
sub esi, ebx
lea ebx, [ecx + ebp]
add ebp, edi
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
jmp 0x63874db3
mov eax, esi
sub eax, ecx
neg eax
sar eax, 0x1f
and eax, ecx
mov ecx, dword [esp + 0xbc]
mov byte [ecx + eax], dl
mov byte [ecx + eax + 1], bl
xchg ebp, ebx
mov byte [ecx + eax + 2], bl
xchg ebp, ebx
mov byte [ecx + eax + 3], 0xff
mov eax, dword [esp + 0x24]
lea ebx, [eax + 1]
mov eax, dword [esp + 0x78]
lea ebp, [eax + 1]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0xdc]
mov eax, ecx
mov ecx, edi
mov edi, dword [esp + 0x3c]
cmp ecx, edi
je 0x63874cb7
mov edi, dword [edx + 4]
cmp ebx, edi
jae 0x63874ea3
mov edi, dword [edx]
mov eax, dword [edx + 0x10]
movzx edi, byte [edi + ebx]
cmp ebp, eax
jae 0x63874e9a
mov dword [esp + 0x24], ebx
mov eax, dword [edx + 0xc]
mov ebx, dword [edx + 0x1c]
movzx eax, byte [eax + ebp]
cmp ebp, ebx
jae 0x63874e91
imul ebx, edi, 0x10101
mov edi, dword [edx + 0x18]
movzx edi, byte [edi + ebp]
imul edx, edi, 0x166e9
lea edx, [edx + ebx - 0xb37480]
test edx, 0xff000000
jne 0x63874e14
sar edx, 0x10
jmp 0x63874e19
sar edx, 0x1f
not edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x78], ebp
imul ebp, eax, 0x581a
sub ebx, ebp
imul ebp, edi, 0xb6d2
sub ebx, ebp
add ebx, 0x877600
test ebx, 0xff000000
jne 0x63874e44
sar ebx, 0x10
jmp 0x63874e49
sar ebx, 0x1f
not ebx
imul ebp, eax, 0x1c5a2
mov edi, dword [esp + 0x14]
lea ebp, [ebp + edi - 0xe2d100]
test ebp, 0xff000000
jne 0x63874e67
sar ebp, 0x10
jmp 0x63874e70
sar ebp, 0x1f
xchg ebp, ebx
not ebx
xchg ebp, ebx
lea edi, [ecx + 4]
cmp esi, edi
jb 0x63874e88
cmp ecx, edi
jbe 0x63874d6c
mov eax, ecx
mov ecx, edi
call fcn.637ac1f0
mov ecx, edi
mov edx, esi
call fcn.637ac1e0
mov eax, ebp
mov ecx, ebx
call fcn.637ac140
mov ecx, eax
mov eax, ebp
call fcn.637ac140
mov eax, ebx
mov ecx, edi
call fcn.637ac140
mov eax, edx
mov ecx, esi
call fcn.637ac1a0
nop
call fcn.637aaca0
jmp fcn.63874480