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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c
mov eax, dword [ecx + 0x24]
push ebx
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 0xc]
add eax, esi
push edi
mov edi, dword [ecx + 0xc]
mov dword [esp + 0x20], edx
mov edx, dword [ecx + 8]
lea ebx, [eax - 8]
mov dword [esp + 0x58], ebx
mov ebx, dword [ecx + 4]
mov dword [esp + 0x34], ebx
add ebx, edi
mov dword [esp + 0x1c], ebx
mov ebx, dword [ecx + 0x10]
mov dword [esp + 0x38], edx
add edx, ebx
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x38]
add ebx, edi
mov dword [esp + 0x6c], edx
mov edx, dword [ebp + 8]
mov dword [esp + 0x14], edi
mov dword [esp + 0x48], ebx
lea ebx, [eax - 8]
cmp esi, ebx
mov dword [esp + 0x28], esi
mov edi, dword [edx]
mov ebx, esi
mov dword [esp + 0x24], edi
mov edi, dword [edx + 4]
mov edx, dword [ecx + 0x78]
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], edi
jae 0x4232b4
mov eax, 0x40
mov edi, 0x20
sub eax, edx
sub edi, edx
mov dword [esp + 0xc], eax
mov eax, 0x40
sub eax, dword [ecx + 0x7c]
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0x14]
add eax, 0xfffffffc
mov dword [esp + 0x64], edi
mov dword [esp + 0x60], eax
mov dword [esp + 0x30], esi
cmp eax, 4
ja case.0x42295c.0
jmp dword [eax*4 + 0x4232cc]
push 0xcf1bbcdc
push 0xbb000000
push dword [esi + 4]
push dword [esi]
call fcn.004566b0
mov ecx, dword [esp + 0xc]
call fcn.0046fee0
jmp 0x4229b0
push 0xcf1bbcdc
push 0xbf9b0000
jmp 0x42296d
push 0xcf1bbcdc
push 0xbfa56300
jmp 0x42296d
push 0xcf1bbcdc
push 0xb7a56463
jmp 0x42296d
imul eax, dword [esi], 0x9e3779b1
mov ecx, edi
shr eax, cl
mov ecx, dword [esp + 0x4c]
push 0xcf1bbcdc
mov dword [esp + 0x1c], eax
push 0xb7a56463
mov ecx, dword [ecx + eax*4]
cmp ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
push dword [esi + 4]
cmovb eax, dword [esp + 0x44]
push dword [esi]
add eax, ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], eax
call fcn.004566b0
mov ecx, dword [esp + 0x50]
call fcn.0046fee0
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
cmp edx, dword [esp + 0x14]
mov eax, esi
mov edi, dword [esp + 0x34]
cmovb edi, dword [esp + 0x38]
sub eax, dword [esp + 0x34]
add edi, edx
mov dword [esp + 0x2c], eax
sub eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x40], eax
cmp dword [esp + 0x40], edx
mov eax, dword [esp + 0x34]
cmovb eax, dword [esp + 0x38]
add eax, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x18]
mov dword [ecx], edx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x84], edi
mov dword [ecx + eax*4], edx
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x40]
mov edx, dword [esp + 0x68]
dec eax
cmp eax, 3
mov eax, dword [esp + 0x44]
sbb ecx, ecx
inc ecx
cmp eax, dword [esp + 0x40]
sbb eax, eax
neg eax
test eax, ecx
lea ecx, [esi + 1]
mov dword [esp + 0x5c], ecx
je 0x422b6a
mov eax, dword [esp + 0x78]
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x422b6a
mov edx, dword [esp + 0x10]
mov ebx, edx
mov eax, dword [esp + 0x14]
mov ecx, edx
cmp dword [esp + 0x40], eax
mov edi, dword [esp + 0x78]
cmovb ebx, dword [esp + 0x48]
add esi, 5
add edi, 4
mov dword [esp + 0x78], esi
mov eax, esi
sub eax, edi
add eax, ebx
cmp eax, edx
mov edx, edi
cmovb ecx, eax
push ecx
mov ecx, esi
call fcn.0041fb40
mov esi, eax
add esp, 4
lea eax, [esi + edi]
cmp eax, ebx
jne 0x422aef
mov ecx, dword [esp + 0x78]
push dword [esp + 0x10]
mov edx, dword [esp + 0x20]
lea ecx, [esi + ecx]
call fcn.0041fb40
add esp, 4
add esi, eax
mov ebx, dword [esp + 0x20]
lea edi, [esi + 4]
mov esi, dword [esp + 0x5c]
mov ecx, esi
mov edx, dword [esp + 0x28]
sub ecx, edx
mov dword [esp + 0x18], edi
mov eax, dword [ebx + 0xc]
mov ebx, eax
mov dword [esp + 0x74], ecx
lea eax, [ebx + ecx]
mov dword [esp + 0x78], eax
mov edi, eax
mov eax, dword [edx]
lea edx, [edx + 8]
mov ecx, dword [edx - 4]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
add ebx, 8
cmp ebx, edi
jb 0x422b18
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x18]
add dword [ebx + 0xc], ecx
cmp ecx, 0xffff
jbe 0x422b55
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 3
mov dword [ebx + 0x24], 1
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 4]
mov word [eax + 4], cx
mov eax, dword [ebx + 4]
mov dword [eax], 1
jmp 0x422f60
cmp edx, dword [esp + 0x44]
mov edx, dword [esi]
jbe 0x422cbd
mov eax, dword [esi + 4]
cmp dword [edi], edx
jne 0x422cbd
cmp dword [edi + 4], eax
jne 0x422cbd
mov ecx, dword [esp + 0x68]
cmp ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, edx
cmovb ebx, dword [esp + 0x48]
mov ecx, edx
mov eax, dword [esp + 0x1c]
cmovb eax, dword [esp + 0x6c]
add edi, 8
mov dword [esp + 0x78], eax
lea eax, [esi + 8]
sub eax, edi
add eax, ebx
cmp eax, edx
mov edx, edi
cmovb ecx, eax
push ecx
lea ecx, [esi + 8]
call fcn.0041fb40
mov ecx, eax
add esp, 4
mov dword [esp + 0x74], ecx
lea eax, [ecx + edi]
cmp eax, ebx
jne 0x422bf1
push dword [esp + 0x10]
mov edx, dword [esp + 0x20]
lea eax, [esi + 8]
add ecx, eax
call fcn.0041fb40
mov ecx, dword [esp + 0x78]
add esp, 4
add ecx, eax
mov eax, dword [esp + 0x2c]
lea edi, [ecx + 8]
sub eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x84]
cmp dword [esp + 0x78], ebx
mov edx, dword [esp + 0x28]
sbb ecx, ecx
mov dword [esp + 0x74], eax
neg ecx
mov dword [esp + 0x18], edi
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
je 0x422c41
mov al, byte [esi - 1]
dec ebx
cmp al, byte [ebx]
jne 0x422c3d
dec esi
inc edi
cmp dword [esp + 0x78], ebx
sbb ecx, ecx
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
jne 0x422c21
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x24]
mov ecx, esi
mov ebx, dword [esp + 0x20]
sub ecx, edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0xc]
mov ebx, eax
mov dword [esp + 0x78], ecx
lea eax, [ebx + ecx]
mov dword [esp + 0x84], eax
mov edi, eax
nop
mov eax, dword [edx]
lea edx, [edx + 8]
mov ecx, dword [edx - 4]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
add ebx, 8
cmp ebx, edi
jb 0x422c70
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x78]
mov edi, dword [esp + 0x18]
add dword [ebx + 0xc], ecx
cmp ecx, 0xffff
jbe 0x422cad
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 3
mov dword [ebx + 0x24], 1
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 4]
mov word [eax + 4], cx
mov ecx, dword [esp + 0x74]
jmp 0x422f58
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x70], eax
jbe 0x42328e
mov eax, dword [esp + 0x74]
cmp dword [eax], edx
jne 0x42328e
push 0xcf1bbcdc
push 0xb7a56463
push dword [ecx + 4]
push dword [ecx]
call fcn.004566b0
mov ecx, dword [esp + 0x50]
call fcn.0046fee0
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
cmp edx, dword [esp + 0x14]
mov edi, dword [esp + 0x34]
cmovb edi, dword [esp + 0x38]
mov eax, dword [esp + 0x2c]
add edi, edx
inc eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x40], edi
mov dword [ecx], eax
cmp edx, dword [esp + 0x44]
jbe 0x422e1c
mov ecx, dword [esp + 0x5c]
mov eax, dword [edi]
cmp eax, dword [ecx]
jne 0x422e1c
mov eax, dword [edi + 4]
cmp eax, dword [ecx + 4]
jne 0x422e1c
cmp edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov ebx, ecx
cmovb ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x1c]
cmovb eax, dword [esp + 0x6c]
add esi, 9
mov dword [esp + 0x78], eax
add edi, 8
mov eax, esi
mov dword [esp + 0x84], esi
sub eax, edi
mov edx, edi
add eax, ebx
cmp eax, ecx
cmovb ecx, eax
push ecx
mov ecx, esi
call fcn.0041fb40
mov esi, eax
add esp, 4
lea eax, [esi + edi]
cmp eax, ebx
jne 0x422da6
mov ecx, dword [esp + 0x84]
push dword [esp + 0x10]
mov edx, dword [esp + 0x20]
lea ecx, [esi + ecx]
call fcn.0041fb40
add esp, 4
add esi, eax
mov eax, dword [esp + 0x2c]
lea edi, [esi + 8]
sub eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x40]
inc eax
cmp dword [esp + 0x78], ebx
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x28]
sbb ecx, ecx
neg ecx
mov dword [esp + 0x70], eax
cmp edx, esi
mov dword [esp + 0x18], edi
sbb eax, eax
neg eax
test eax, ecx
je 0x422ee0
nop dword [eax]
lea eax, [esi - 1]
mov dword [esp + 0x84], eax
lea ecx, [ebx - 1]
mov al, byte [eax]
mov ebx, ecx
cmp al, byte [ecx]
jne 0x422ee0
mov esi, dword [esp + 0x84]
inc edi
cmp dword [esp + 0x78], ebx
mov dword [esp + 0x18], edi
sbb ecx, ecx
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
jne 0x422de0
jmp 0x422ee0
mov ecx, dword [esp + 0x70]
cmp ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, edx
cmovb ebx, dword [esp + 0x48]
mov ecx, edx
mov eax, dword [esp + 0x1c]
cmovb eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x74]
mov dword [esp + 0x78], eax
add edi, 4
lea eax, [esi + 4]
sub eax, edi
add eax, ebx
cmp eax, edx
mov edx, edi
cmovb ecx, eax
push ecx
lea ecx, [esi + 4]
call fcn.0041fb40
mov ecx, eax
add esp, 4
mov dword [esp + 0x84], ecx
lea eax, [ecx + edi]
cmp eax, ebx
jne 0x422e8d
push dword [esp + 0x10]
mov edx, dword [esp + 0x20]
lea eax, [esi + 4]
add ecx, eax
call fcn.0041fb40
mov ecx, dword [esp + 0x88]
add esp, 4
add ecx, eax
mov eax, dword [esp + 0x2c]
lea edi, [ecx + 4]
sub eax, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
cmp dword [esp + 0x78], ebx
mov edx, dword [esp + 0x28]
sbb ecx, ecx
mov dword [esp + 0x70], eax
neg ecx
mov dword [esp + 0x18], edi
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
je 0x422ee0
nop word [eax + eax]
mov al, byte [esi - 1]
dec ebx
cmp al, byte [ebx]
jne 0x422edc
dec esi
inc edi
cmp dword [esp + 0x78], ebx
sbb ecx, ecx
neg ecx
cmp edx, esi
sbb eax, eax
neg eax
test eax, ecx
jne 0x422ec0
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x24]
mov ecx, esi
mov ebx, dword [esp + 0x20]
sub ecx, edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0xc]
mov ebx, eax
mov dword [esp + 0x78], ecx
lea eax, [ebx + ecx]
mov dword [esp + 0x84], eax
mov edi, eax
nop dword [eax]
mov eax, dword [edx]
lea edx, [edx + 8]
mov ecx, dword [edx - 4]
mov dword [ebx], eax
mov dword [ebx + 4], ecx
add ebx, 8
cmp ebx, edi
jb 0x422f10
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x78]
mov edi, dword [esp + 0x18]
add dword [ebx + 0xc], ecx
cmp ecx, 0xffff
jbe 0x422f4d
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 3
mov dword [ebx + 0x24], 1
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 4]
mov word [eax + 4], cx
mov ecx, dword [esp + 0x70]
mov eax, dword [ebx + 4]
add ecx, 3
mov dword [eax], ecx
lea ecx, [edi - 3]
cmp ecx, 0xffff
jbe 0x422f7d
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 3
mov dword [ebx + 0x24], 2
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 4]
add esi, edi
mov word [eax + 6], cx
add dword [ebx + 4], 8
mov ebx, esi
mov eax, dword [esp + 0x58]
mov dword [esp + 0x28], ebx
cmp esi, eax
ja 0x42329e
mov eax, dword [esp + 0x60]
cmp eax, 4
ja case.0x422fa5.0
jmp dword [eax*4 + 0x4232e0]
push 0xcf1bbcdc
push 0xbb000000
mov eax, dword [esp + 0x38]
push dword [eax + 6]
push dword [eax + 2]
call fcn.004566b0
mov ecx, dword [esp + 0xc]
call fcn.0046fee0
jmp 0x423005
push 0xcf1bbcdc
push 0xbf9b0000
jmp 0x422fb6
push 0xcf1bbcdc
push 0xbfa56300
jmp 0x422fb6
push 0xcf1bbcdc
push 0xb7a56463
jmp 0x422fb6
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x64]
imul eax, dword [eax + 2], 0x9e3779b1
shr eax, cl
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x2c]
add edi, 2
push 0xcf1bbcdc
mov dword [ecx + eax*4], edi
mov eax, dword [esp + 0x34]
push 0xb7a56463
push dword [eax + 6]
push dword [eax + 2]
call fcn.004566b0
mov ecx, dword [esp + 0x50]
call fcn.0046fee0
mov ecx, dword [esp + 0x54]
mov dword [ecx + eax*4], edi
mov eax, dword [esp + 0x60]
cmp eax, 4
ja case.0x423045.0
jmp dword [eax*4 + 0x4232f4]
push 0xcf1bbcdc
push 0xbb000000
push dword [esi + 2]
push dword [esi - 2]
call fcn.004566b0
mov ecx, dword [esp + 0xc]
call fcn.0046fee0
mov edx, eax
jmp 0x42309f
push 0xcf1bbcdc
push 0xbf9b0000
jmp 0x423056
push 0xcf1bbcdc
push 0xbfa56300
jmp 0x423056
push 0xcf1bbcdc
push 0xb7a56463
jmp 0x423056
imul edx, dword [esi - 2], 0x9e3779b1
mov ecx, dword [esp + 0x64]
shr edx, cl
mov eax, dword [esp + 0x4c]
mov edi, esi
sub edi, dword [esp + 0x34]
push 0xcf1bbcdc
push 0xb7a56463
add edi, 0xfffffffe
mov dword [eax + edx*4], edi
push dword [esi + 2]
push dword [esi - 2]
call fcn.004566b0
mov ecx, dword [esp + 0x50]
call fcn.0046fee0
mov ecx, dword [esp + 0x54]
mov dword [ecx + eax*4], edi
mov ecx, dword [esp + 0x14]
mov eax, esi
sub eax, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
mov edx, eax
sub edx, dword [esp + 0x3c]
cmp edx, ecx
mov dword [esp + 0x74], eax
cmovae edi, dword [esp + 0x34]
sub ecx, edx
dec ecx
add edi, edx
cmp ecx, 3
sbb ecx, ecx
inc ecx
cmp dword [esp + 0x44], edx
sbb eax, eax
neg eax
test eax, ecx
je 0x423298
mov eax, dword [edi]
cmp eax, dword [esi]
jne 0x423298
cmp edx, dword [esp + 0x14]
lea eax, [esi + 4]
mov ecx, dword [esp + 0x10]
mov ebx, ecx
cmovb ebx, dword [esp + 0x48]
add edi, 4
sub eax, edi
mov edx, edi
add eax, ebx
cmp eax, ecx
cmovb ecx, eax
push ecx
lea ecx, [esi + 4]
call fcn.0041fb40
mov ecx, eax
add esp, 4
mov dword [esp + 0x84], ecx
lea eax, [ecx + edi]
cmp eax, ebx
jne 0x423172
push dword [esp + 0x10]
mov edx, dword [esp + 0x20]
lea eax, [esi + 4]
add ecx, eax
call fcn.0041fb40
mov ecx, dword [esp + 0x88]
add esp, 4
add ecx, eax
mov ebx, dword [esp + 0x20]
add ecx, 4
mov edx, dword [esp + 0x24]
mov edi, esi
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x3c], edx
mov edx, dword [ebx + 0xc]
mov ebx, edx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x24], eax
mov eax, dword [edi]
lea edi, [edi + 8]
mov ecx, dword [edi - 4]
mov dword [edx], eax
mov dword [edx + 4], ecx
add edx, 8
cmp edx, ebx
jb 0x423194
mov ebx, dword [esp + 0x20]
xor ecx, ecx
mov eax, dword [ebx + 4]
mov word [eax + 4], cx
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x78]
add ecx, 0xfffffffd
mov dword [eax], 1
cmp ecx, 0xffff
jbe 0x4231df
mov eax, dword [ebx + 4]
sub eax, dword [ebx]
sar eax, 3
mov dword [ebx + 0x24], 2
mov dword [ebx + 0x28], eax
mov eax, dword [ebx + 4]
mov word [eax + 6], cx
add dword [ebx + 4], 8
mov eax, dword [esp + 0x60]
cmp eax, 4
ja case.0x4231f3.0
jmp dword [eax*4 + 0x423308]
push 0xcf1bbcdc
push 0xbb000000
push dword [esi + 4]
push dword [esi]
call fcn.004566b0
mov ecx, dword [esp + 0xc]
call fcn.0046fee0
jmp 0x423249
push 0xcf1bbcdc
push 0xbf9b0000
jmp 0x423204
push 0xcf1bbcdc
push 0xbfa56300
jmp 0x423204
push 0xcf1bbcdc
push 0xb7a56463
jmp 0x423204
imul eax, dword [esi], 0x9e3779b1
mov ecx, dword [esp + 0x64]
shr eax, cl
mov ecx, dword [esp + 0x4c]
mov edi, dword [esp + 0x74]
push 0xcf1bbcdc
push 0xb7a56463
mov dword [ecx + eax*4], edi
push dword [esi + 4]
push dword [esi]
call fcn.004566b0
mov ecx, dword [esp + 0x50]
call fcn.0046fee0
mov ecx, dword [esp + 0x54]
add esi, dword [esp + 0x78]
mov ebx, esi
mov dword [esp + 0x28], ebx
mov dword [ecx + eax*4], edi
cmp esi, dword [esp + 0x58]
jbe 0x4230d4
jmp 0x4232ac
mov eax, esi
sub eax, ebx
sar eax, 8
inc eax
add esi, eax
mov eax, dword [esp + 0x58]
cmp esi, eax
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
jb 0x422953
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x3c]
mov edx, dword [ebp + 8]
sub eax, ebx
mov ecx, dword [esp + 0x24]
mov dword [edx + 4], edi
pop edi
pop esi
mov dword [edx], ecx
pop ebx
mov esp, ebp
pop ebp
ret