Function at 0x4125e4
Capabilities:
Hash data with crc32
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xf4
mov eax, dword [esp + 0x108]
mov dword [esp + 0x38], eax
mov dword [esp], 0xaa937b77
mov dword [esp + 0x34], 0xeb227f65
cmp dword [esp + 0x110], 4
jae 0x41261a
mov dword [esp + 0x34], 0xa076448d
not dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x18], eax
mov ebx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x24], eax
mov ebp, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], eax
mov edi, dword [esp + 0x4c]
mov eax, dword [esp]
cmp eax, 0x845a73
jle 0x4126e9
cmp eax, 0x4157743e
jle 0x412737
cmp eax, 0x64ee4231
jg 0x4128bf
cmp eax, 0x4f223571
jg 0x412927
cmp eax, 0x459792f1
jg 0x412bb5
cmp eax, 0x4157743f
je 0x412e15
cmp eax, 0x4431cd5b
jne 0x412662
mov eax, dword [esp + 0x90]
shr eax, 8
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x94]
movzx eax, byte [eax]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x90]
movzx eax, al
mov dword [esp + 0xd8], eax
mov dword [esp], 0xbf8677a6
jmp 0x412662
cmp eax, 0xc7b8ff6c
jg 0x412796
cmp eax, 0xaf97212a
jg 0x412833
cmp eax, 0x90fbe530
jle 0x4129f3
cmp eax, 0xa076448c
jg 0x412bf8
cmp eax, 0x90fbe531
je 0x412eb0
cmp eax, 0x9d1fe6d8
jne 0x412662
mov dword [esp], 0xc71cd4ca
jmp 0x412662
cmp eax, 0x13d0c0b7
jg 0x4127e4
cmp eax, 0x80ea685
jle 0x412962
cmp eax, 0xbcb9fe5
jg 0x412b4f
cmp eax, 0x80ea686
je 0x412d95
cmp eax, 0xa3fe076
jne 0x412662
mov eax, dword [esp + 0x6c]
shr eax, 8
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x2c]
add eax, 2
mov dword [esp + 0xc0], eax
mov dword [esp], 0x4da77fde
jmp 0x412662
cmp eax, 0xe7dc6a3d
jg 0x412887
cmp eax, 0xdd27e91a
jle 0x412a4e
cmp eax, 0xe04cd1eb
jg 0x412c22
cmp eax, 0xdd27e91b
je 0x412ebc
cmp eax, 0xe02f4fe2
jne 0x412662
mov eax, dword [esp + 0x14]
mov dword [esp + 0xf0], eax
mov dword [esp], 0x5ad917fc
jmp 0x412662
cmp eax, 0x2aba2a04
jle 0x4129ac
cmp eax, 0x3a09e3b3
jg 0x412b71
cmp eax, 0x2aba2a05
je 0x412db0
cmp eax, 0x3179aa02
jne 0x412662
imul ecx, dword [esp + 4], 0xe0
mov dword [esp + 4], ecx
mov eax, 0x2aba2a05
test ecx, ecx
je 0x413257
mov eax, 0x47b9c609
jmp 0x413257
cmp eax, 0xbcf08c17
jle 0x412a8c
cmp eax, 0xc3501d21
jg 0x412c5c
cmp eax, 0xbcf08c18
je 0x412efa
cmp eax, 0xbf8677a6
jne 0x412662
mov eax, dword [esp + 0xd4]
xor eax, dword [esp + 0xd8]
mov eax, dword [eax*4 + 0x46d8e0]
mov dword [esp + 0xdc], eax
mov dword [esp], 0x459792f2
jmp 0x412662
cmp eax, 0xf0d8d6c8
jle 0x412ab9
cmp eax, 0xf3916fd4
jg 0x412cb1
cmp eax, 0xf0d8d6c9
je 0x412f1a
cmp eax, 0xf247de0f
jne 0x412662
mov dword [esp], 0xe7dc6a3e
jmp 0x412662
cmp eax, 0x6d3a3980
jle 0x412afc
cmp eax, 0x724743a2
jg 0x412cf2
cmp eax, 0x6d3a3981
je 0x412fd6
cmp eax, 0x6de2b0ce
jne 0x412662
mov eax, dword [esp + 4]
shr eax, 1
and eax, 0x7fffff00
add eax, 0x1e5
shr eax, 7
imul eax, eax, 0xf2
mov dword [esp + 4], eax
push 0xcb8
push eax
push 0x485d
call fcn.004174fc
add esp, 0xc
mov dword [esp], 0xf3916fd5
jmp 0x412662
cmp eax, 0x5f257484
jle 0x412d29
cmp eax, 0x5f257485
je 0x412d68
cmp eax, 0x602deeaf
jne 0x412662
mov eax, dword [esp + 0xe8]
add eax, 0xfffffffc
mov dword [esp + 0x30], eax
mov dword [esp], 0xc7b8ff6d
jmp 0x412662
cmp eax, 0x845a74
je 0x413194
cmp eax, 0x6f0d1ed
je 0x41304a
cmp eax, 0x76d9ca6
jne 0x412662
mov eax, dword [esp + 0xc8]
xor eax, dword [esp + 0xcc]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x2c]
add eax, 4
mov dword [esp + 0x78], eax
mov dword [esp], 0x602deeaf
jmp 0x412662
cmp eax, 0x13d0c0b8
je 0x4131bf
cmp eax, 0x1ceb96f1
je 0x41306a
cmp eax, 0x241b1475
jne 0x412662
mov eax, dword [esp + 0x34]
mov dword [esp], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x24], eax
mov ebx, dword [esp + 0x110]
jmp 0x412662
cmp eax, 0x88be01a0
je 0x4131ec
cmp eax, 0x8927a85f
je 0x4130a8
cmp eax, 0x895cf966
jne 0x412662
mov eax, dword [esp + 0x9c]
mov eax, dword [eax]
xor eax, dword [esp + 0x98]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x68]
shr eax, 8
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 0xa4], eax
mov dword [esp], 0x845a74
jmp 0x412662
cmp eax, 0xc7b8ff6d
je 0x413229
cmp eax, 0xccb8bb14
je 0x4130d5
cmp eax, 0xd85c26d6
jne 0x412662
cmp dword [esp + 0x88], 0
mov eax, 0x5f257485
je 0x413257
mov eax, 0x88be01a0
jmp 0x413257
cmp eax, 0xaf97212b
je 0x41325f
cmp eax, 0xb2409be6
je 0x41310e
cmp eax, 0xb244b70c
jne 0x412662
mov dword [esp], 0xe26df8f2
jmp 0x412662
cmp eax, 0xe7dc6a3e
je 0x41329d
cmp eax, 0xeb227f65
je 0x41314e
cmp eax, 0xeee9bf99
jne 0x412662
mov dword [esp + 0xe8], edi
mov eax, dword [esp + 0x10]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x2c], ebp
mov dword [esp], 0x724743a3
jmp 0x412662
cmp eax, 0x64ee4232
je 0x4132b8
cmp eax, 0x65a2ab43
je 0x4131e0
cmp eax, 0x6c9a1993
jne 0x412662
mov eax, dword [esp + 4]
shr eax, 7
and eax, 0xfffffffc
mov dword [esp + 4], eax
push 0x5259
push 0x8b2
push 0x236
push eax
call fcn.00413549
add esp, 0x10
mov dword [esp], 0x4157743f
jmp 0x412662
cmp eax, 0xbcb9fe6
je 0x412dda
cmp eax, 0x12caeac5
jne 0x412662
mov dword [esp], 0xccb8bb14
jmp 0x412662
cmp eax, 0x3a09e3b4
je 0x412e09
cmp eax, 0x3bc3b379
jne 0x412662
mov eax, dword [esp + 8]
shr eax, 9
mov dword [esp + 8], eax
mov ecx, eax
imul ecx, eax
imul edx, ecx, 0x131f
dec edx
mov eax, 0xbcb9fe6
cmp edx, ecx
je 0x413257
mov eax, 0x64ee4232
jmp 0x413257
cmp eax, 0x459792f2
je 0x412e76
cmp eax, 0x4da77fde
jne 0x4132e6
mov eax, dword [esp + 0xc0]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x6c]
movzx ecx, cl
xor ecx, eax
lea eax, [ecx*4 + 0x46d8e0]
mov dword [esp + 0xc4], eax
mov dword [esp], 0x6f0d1ed
jmp 0x412662
cmp eax, 0xa076448d
je 0x412f41
cmp eax, 0xaa937b77
jne 0x412662
mov eax, dword [esp + 0x38]
mov dword [esp + 0x64], eax
mov dword [esp], 0x241b1475
jmp 0x412662
cmp eax, 0xe04cd1ec
je 0x412f6a
cmp eax, 0xe26df8f2
jne 0x412662
cmp dword [esp + 0x80], 0
mov eax, 0xe02f4fe2
je 0x412c4c
mov eax, 0xb2409be6
mov dword [esp], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
jmp 0x412662
cmp eax, 0xc3501d22
je 0x412f88
cmp eax, 0xc71cd4ca
jne 0x412662
mov ecx, dword [esp + 0x30]
mov eax, 0xeee9bf99
cmp ecx, 4
jae 0x412c85
mov eax, 0xa076448d
mov dword [esp], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x24], eax
mov ebp, dword [esp + 0x78]
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x30]
jmp 0x412662
cmp eax, 0xf3916fd5
je 0x412fa4
cmp eax, 0xf6c5cd5b
jne 0x412662
movzx eax, byte [esp + 0xf]
mov ecx, dword [esp + 0x8c]
movzx ecx, cl
xor ecx, eax
lea eax, [ecx*4 + 0x46d8e0]
mov dword [esp + 0x9c], eax
mov dword [esp], 0xdd27e91b
jmp 0x412662
cmp eax, 0x724743a3
je 0x413023
cmp eax, 0x7e43d795
jne 0x412662
mov eax, dword [esp + 0xa8]
xor eax, dword [esp + 0xac]
mov dword [esp + 0xb0], eax
mov dword [esp], 0x13d0c0b8
jmp 0x412662
cmp eax, 0x4f223572
jne 0x4132d6
mov eax, dword [esp + 4]
shl eax, 0xc
add eax, 0xfffffe75
mov dword [esp + 4], eax
push eax
push 0x4e9c
push 0x2f9b
push 0x4b7d
call fcn.00419a32
add esp, 0x10
mov dword [esp], 0x241b1475
jmp 0x412662
mov eax, dword [esp + 8]
shr eax, 0xf
imul eax, eax, 0x8b800000
add eax, 0x64400000
mov dword [esp + 8], eax
mov dword [esp], 0xe02f4fe2
mov eax, dword [esp + 0x84]
mov dword [esp + 0x14], eax
jmp 0x412662
mov eax, dword [esp + 0x94]
inc eax
mov dword [esp + 0xe0], eax
mov dword [esp], 0xf247de0f
jmp 0x412662
mov eax, dword [esp + 4]
shl eax, 0xa
add eax, 0x9400
mov dword [esp + 4], eax
push 0x35a
push eax
call fcn.004178a7
add esp, 8
mov dword [esp], 0x241b1475
jmp 0x412662
mov esi, dword [esp + 4]
shr esi, 7
add esi, 0x181
mov dword [esp + 4], esi
push esi
call fcn.0041f5c2
add esp, 4
push esi
call fcn.004227ab
add esp, 4
mov dword [esp], 0x13d0c0b8
jmp 0x412662
mov dword [esp], 0xa3fe076
jmp 0x412662
mov eax, dword [esp + 4]
lea eax, [eax + eax*8]
lea esi, [eax + eax*8]
add esi, 0x1116
mov dword [esp + 4], esi
push 0x5fe5
push esi
push 0x233c
call fcn.004125e4
add esp, 0xc
push 0x4e40
push 0x4aef
push 0x16ef
push esi
push 0x6238
push 0x5d2b
call fcn.0041341b
add esp, 0x18
mov eax, 0xbcf08c18
cmp esi, 0x2f
jl 0x413257
mov eax, 0xaf97212b
jmp 0x413257
mov ecx, dword [esp + 8]
mov eax, 0x12b
add ecx, eax
mov eax, ecx
shr eax, 3
imul ecx, ecx
imul edx, ecx, 0x126b
dec edx
add eax, 0x87
mov dword [esp + 8], eax
mov eax, 0xbf8677a6
cmp ecx, edx
je 0x413257
mov eax, 0xe04cd1ec
jmp 0x413257
mov dword [esp], 0x80ea686
jmp 0x412662
mov ecx, dword [esp + 8]
lea eax, [ecx - 0x1c]
imul eax, eax
shl ecx, 7
add ecx, 0xffff9180
imul edx, eax, 0x1053
shr ecx, 6
dec edx
imul ecx, ecx, 0xe9
mov dword [esp + 8], ecx
mov ecx, 0xf6c5cd5b
cmp edx, eax
je 0x4130a0
mov ecx, 0x895cf966
jmp 0x4130a0
imul eax, dword [esp + 4], 0x738
add eax, 0xe4
shr eax, 0xe
mov dword [esp + 4], eax
mov dword [esp], 0x241b1475
jmp 0x412662
mov ecx, dword [esp + 4]
mov eax, 0xffffff78
add ecx, eax
mov dword [esp + 4], ecx
mov eax, 0xe04cd1ec
cmp ecx, 0x10
jge 0x413257
mov eax, 0x6d3a3981
jmp 0x413257
mov eax, dword [esp + 0x24]
mov dword [esp + 0xe4], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ebx
mov dword [esp], 0xd85c26d6
jmp 0x412662
mov eax, dword [esp + 0xd0]
xor eax, dword [esp + 0xdc]
mov dword [esp + 0x7c], eax
mov dword [esp], 0x90fbe531
jmp 0x412662
mov eax, dword [esp + 0xb4]
mov eax, dword [eax]
mov dword [esp + 0xb8], eax
mov dword [esp], 0x3bc3b379
jmp 0x412662
imul ecx, dword [esp + 4], 0x2ade
add ecx, 0xfff5603c
mov eax, ecx
shr eax, 2
mov dword [esp + 4], eax
mov eax, 0x895cf966
cmp ecx, 0xe8
jb 0x413257
mov eax, 0x241b1475
jmp 0x413257
mov eax, dword [esp + 4]
shr eax, 5
lea eax, [eax*4 + 0xb]
shr eax, 3
imul esi, eax, 0x35
mov dword [esp + 4], esi
push 0x209f
push 0x48fb
push 0x5b86
push esi
push 0x13ef
call fcn.0041d226
add esp, 0x14
mov eax, 0x241b1475
cmp esi, 0x17
je 0x413257
mov eax, 0xe26df8f2
jmp 0x413257
mov eax, dword [esp + 0x8c]
shr eax, 8
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x2c]
mov al, byte [eax]
mov byte [esp + 0xf], al
mov dword [esp], 0xf6c5cd5b
jmp 0x412662
mov eax, dword [esp + 0xc4]
mov eax, dword [eax]
xor eax, dword [esp + 0xbc]
mov dword [esp + 0x70], eax
mov dword [esp], 0x1ceb96f1
jmp 0x412662
mov eax, dword [esp + 8]
shr eax, 0xd
and eax, 0x1ffff
mov ecx, eax
shl ecx, 5
imul eax, eax
imul edx, eax, 0x67fb
add ecx, 0xf3
dec edx
shr ecx, 2
mov dword [esp + 8], ecx
mov ecx, 0x4da77fde
cmp edx, eax
je 0x4130a0
mov ecx, 0x12caeac5
mov dword [esp], ecx
jmp 0x412662
mov eax, dword [esp + 0x18]
mov dword [esp + 0xec], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x94], eax
mov dword [esp], 0x65a2ab43
jmp 0x412662
mov eax, dword [esp + 0x70]
shr eax, 8
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x2c]
movzx eax, byte [eax + 3]
mov ecx, dword [esp + 0x70]
movzx ecx, cl
xor ecx, eax
mov eax, dword [ecx*4 + 0x46d8e0]
mov dword [esp + 0xcc], eax
mov dword [esp], 0x76d9ca6
jmp 0x412662
mov eax, dword [esp + 8]
shl eax, 9
and eax, 0x3fffe00
imul eax, eax, 0x9c
mov dword [esp + 8], eax
mov dword [esp], 0x8927a85f
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
jmp 0x412662
mov eax, dword [esp + 8]
mov ecx, eax
shr ecx, 6
imul ecx, ecx
shr eax, 0x16
imul edx, ecx, 0x7fb7
dec edx
mov dword [esp + 8], eax
mov eax, 0x6c9a1993
cmp ecx, edx
je 0x413176
mov eax, 0xeee9bf99
mov dword [esp], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x10], eax
mov edi, dword [esp + 0x110]
mov ebp, dword [esp + 0x10c]
jmp 0x412662
mov eax, dword [esp + 0xa4]
movzx eax, byte [eax]
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x68]
movzx eax, al
mov dword [esp + 0xac], eax
mov dword [esp], 0x7e43d795
jmp 0x412662
mov eax, dword [esp + 0xb0]
lea eax, [eax*4 + 0x46d8e0]
mov dword [esp + 0xb4], eax
mov dword [esp], 0xc3501d22
jmp 0x412662
mov dword [esp], 0x4431cd5b
jmp 0x412662
mov eax, dword [esp + 8]
shl eax, 5
add eax, 0xfffff093
mov dword [esp + 8], eax
mov dword [esp], 0x8927a85f
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x18], eax
jmp 0x412662
mov eax, dword [esp + 8]
shr eax, 0x11
mov ecx, eax
imul ecx, eax
add eax, 0xffffffe4
imul edx, ecx, 0x79ef
shr eax, 0xf
dec edx
add eax, 0x14
mov dword [esp + 8], eax
mov eax, 0x13d0c0b8
cmp edx, ecx
je 0x413257
mov eax, 0x9d1fe6d8
mov dword [esp], eax
jmp 0x412662
mov eax, dword [esp + 4]
shl eax, 8
and eax, 0x3ffff00
or eax, 0xbc
mov dword [esp + 4], eax
push eax
push 0xf71
push 0x14d0
push 0x2f57
push 0x2c7
call fcn.0041d226
add esp, 0x14
mov dword [esp], 0x241b1475
jmp 0x412662
mov eax, dword [esp + 0xec]
dec eax
mov dword [esp + 0x80], eax
mov dword [esp], 0xb244b70c
jmp 0x412662
mov eax, dword [esp + 0xa0]
xor eax, dword [esp + 0xb8]
mov dword [esp + 0x6c], eax
mov dword [esp], 0x3a09e3b4
jmp 0x412662
cmp eax, 0x5ad917fc
je 0x41336e
jmp 0x412662
cmp eax, 0x47b9c609
jne 0x412662
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x40], eax
mov dword [esp + 0x60], ebx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], ebp
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edi
imul eax, dword [esp + 4], 0xe5
add eax, 0x77de
shr eax, 4
imul eax, eax, 0xa900
mov dword [esp + 4], eax
push 0x5935
push 0x6250
push 0x16fa
push 0x599f
push 0x10f2
push eax
call fcn.0041c3c4
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x40], eax
mov dword [esp + 0x60], ebx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], ebp
mov eax, dword [esp + 0x10]
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edi
mov eax, dword [esp + 0xf0]
not eax
add esp, 0xf4
pop esi
pop edi
pop ebx
pop ebp
ret