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

Disassembly:
sub esp, 0x134
mov eax, dword [esp + 0x13c]
push ebx
push ebp
mov ebp, dword [eax]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
push esi
mov esi, dword [eax + 0xc]
push edi
mov dword [esp + 0xb4], ecx
xor eax, eax
cmp esi, 4
mov ecx, 0x1f
lea edi, [esp + 0x34]
mov word [esp + 0x32], 0
rep stosd dword es:[edi], eax
jb 0x30020bcd
mov bl, dl
and bl, 0xf
shr edx, 4
mov byte [esp + 0x17], bl
sub esi, 4
jmp 0x30020bf0
mov eax, dword [ebp]
mov ecx, esi
mov bl, al
shl bl, cl
mov ecx, 4
sub ecx, esi
shr eax, cl
or bl, dl
and bl, 0xf
add esi, 0x1c
mov byte [esp + 0x17], bl
mov edx, eax
add ebp, 4
lea ecx, [esp + 0x10a]
mov dword [esp + 0x20], ecx
xor ecx, ecx
mov cl, bl
lea eax, [esp + 0x104]
mov dword [esp + 0x10], eax
mov eax, 1
mov byte [esp + 0x104], 0x10
mov byte [esp + 0x105], 0x60
mov byte [esp + 0x106], 0xb0
dec ecx
shl eax, cl
cmp bl, 1
mov byte [esp + 0x107], 7
mov byte [esp + 0x108], 0xb
mov byte [esp + 0x109], 0xf
mov dword [esp + 0x28], eax
jbe 0x3002109b
mov cl, bl
dec cl
movzx ecx, cl
movzx eax, bl
mov dword [esp + 0x2c], ecx
lea ecx, [ecx]
mov ecx, dword [esp + 0x10]
dec eax
cmp ecx, dword [esp + 0x20]
mov edi, ecx
mov dword [esp + 0x24], edi
jae 0x30021087
mov bl, byte [edi]
test bl, bl
mov byte [esp + 0x18], bl
je case.default.0x30020cbb
test esi, esi
je 0x30020c91
mov ecx, edx
and ecx, 1
shr edx, 1
dec esi
jmp 0x30020ca3
mov ecx, dword [ebp]
mov edx, ecx
add ebp, 4
shr edx, 1
mov esi, 0x1f
and ecx, 1
test ecx, ecx
je case.default.0x30020cbb
mov ecx, dword [esp + 0x18]
and ecx, 3
cmp ecx, 3
ja case.default.0x30020cbb
jmp dword [ecx*4 + 0x30021480]
shr bl, 2
mov cl, bl
shl cl, 2
add cl, 0x11
mov byte [edi], cl
jmp 0x30020d0e
shr bl, 2
mov cl, bl
shl cl, 2
mov bl, cl
add bl, 2
mov byte [edi], bl
mov edi, dword [esp + 0x20]
mov bl, cl
add bl, 0x12
mov byte [edi], bl
mov bl, cl
inc edi
add bl, 0x22
mov byte [edi], bl
inc edi
add cl, 0x32
mov byte [edi], cl
inc edi
mov dword [esp + 0x20], edi
jmp 0x30021075
shr bl, 2
mov byte [edi], 0
inc edi
mov dword [esp + 0x24], edi
test esi, esi
mov byte [esp + 0x18], bl
je 0x30020d20
mov ecx, edx
and ecx, 1
shr edx, 1
dec esi
jmp 0x30020d32
mov ecx, dword [ebp]
mov edx, ecx
add ebp, 4
shr edx, 1
mov esi, 0x1f
and ecx, 1
test ecx, ecx
je 0x30020d4a
dec dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov cl, bl
shl cl, 2
add cl, 3
mov byte [edi], cl
jmp 0x30020dc2
mov ecx, 0x20
or edi, 0xffffffff
sub ecx, eax
shr edi, cl
cmp esi, eax
jb 0x30020d64
and edi, edx
mov ecx, eax
shr edx, cl
sub esi, eax
jmp 0x30020d8d
mov ebx, dword [ebp]
mov dword [esp + 0x1c], ebx
mov ecx, esi
shl ebx, cl
mov ecx, eax
sub ecx, esi
or ebx, edx
mov edx, dword [esp + 0x1c]
shr edx, cl
mov ecx, 0x20
sub ecx, eax
and edi, ebx
mov bl, byte [esp + 0x18]
add esi, ecx
add ebp, 4
or edi, dword [esp + 0x28]
test esi, esi
je 0x30020d9f
mov ecx, edx
and ecx, 1
shr edx, 1
dec esi
jmp 0x30020db1
mov ecx, dword [ebp]
mov edx, ecx
add ebp, 4
shr edx, 1
mov esi, 0x1f
and ecx, 1
test ecx, ecx
movsx edi, di
je 0x30020dba
neg edi
movzx ecx, bl
mov word [esp + ecx*2 + 0x30], di
inc bl
test esi, esi
mov byte [esp + 0x18], bl
je 0x30020dd6
mov ecx, edx
and ecx, 1
shr edx, 1
dec esi
jmp 0x30020de8
mov ecx, dword [ebp]
mov edx, ecx
add ebp, 4
shr edx, 1
mov esi, 0x1f
and ecx, 1
test ecx, ecx
je 0x30020e00
dec dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov cl, bl
shl cl, 2
add cl, 3
mov byte [edi], cl
jmp 0x30020e78
mov ecx, 0x20
or edi, 0xffffffff
sub ecx, eax
shr edi, cl
cmp esi, eax
jb 0x30020e1a
and edi, edx
mov ecx, eax
shr edx, cl
sub esi, eax
jmp 0x30020e43
mov ebx, dword [ebp]
mov dword [esp + 0x1c], ebx
mov ecx, esi
shl ebx, cl
mov ecx, eax
sub ecx, esi
or ebx, edx
mov edx, dword [esp + 0x1c]
shr edx, cl
mov ecx, 0x20
sub ecx, eax
and edi, ebx
mov bl, byte [esp + 0x18]
add esi, ecx
add ebp, 4
or edi, dword [esp + 0x28]
test esi, esi
je 0x30020e55
mov ecx, edx
and ecx, 1
shr edx, 1
dec esi
jmp 0x30020e67
mov ecx, dword [ebp]
mov edx, ecx
add ebp, 4
shr edx, 1
mov esi, 0x1f
and ecx, 1
test ecx, ecx
movsx edi, di
je 0x30020e70
neg edi
movzx ecx, bl
mov word [esp + ecx*2 + 0x30], di
inc bl
test esi, esi
mov byte [esp + 0x18], bl
je 0x30020e8c
mov ecx, edx
and ecx, 1
shr edx, 1
dec esi
jmp 0x30020e9e
mov ecx, dword [ebp]
mov edx, ecx
add ebp, 4
shr edx, 1
mov esi, 0x1f
and ecx, 1
test ecx, ecx
je 0x30020eb6
dec dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov cl, bl
shl cl, 2
add cl, 3
mov byte [edi], cl
jmp 0x30020f2e
mov ecx, 0x20
or edi, 0xffffffff
sub ecx, eax
shr edi, cl
cmp esi, eax
jb 0x30020ed0
and edi, edx
mov ecx, eax
shr edx, cl
sub esi, eax
jmp 0x30020ef9
mov ebx, dword [ebp]
mov dword [esp + 0x1c], ebx
mov ecx, esi
shl ebx, cl
mov ecx, eax
sub ecx, esi
or ebx, edx
mov edx, dword [esp + 0x1c]
shr edx, cl
mov ecx, 0x20
sub ecx, eax
and edi, ebx
mov bl, byte [esp + 0x18]
add esi, ecx
add ebp, 4
or edi, dword [esp + 0x28]
test esi, esi
je 0x30020f0b
mov ecx, edx
and ecx, 1
shr edx, 1
dec esi
jmp 0x30020f1d
mov ecx, dword [ebp]
mov edx, ecx
add ebp, 4
shr edx, 1
mov esi, 0x1f
and ecx, 1
test ecx, ecx
movsx edi, di
je 0x30020f26
neg edi
movzx ecx, bl
mov word [esp + ecx*2 + 0x30], di
inc bl
test esi, esi
mov byte [esp + 0x18], bl
je 0x30020f42
mov ecx, edx
and ecx, 1
shr edx, 1
dec esi
jmp 0x30020f54
mov ecx, dword [ebp]
mov edx, ecx
add ebp, 4
shr edx, 1
mov esi, 0x1f
and ecx, 1
test ecx, ecx
je 0x30020f6e
mov ecx, dword [esp + 0x10]
dec ecx
shl bl, 2
add bl, 3
mov dword [esp + 0x10], ecx
mov byte [ecx], bl
jmp 0x30021075
mov ecx, 0x20
or edi, 0xffffffff
sub ecx, eax
shr edi, cl
cmp esi, eax
jb 0x30020f88
and edi, edx
mov ecx, eax
shr edx, cl
sub esi, eax
jmp 0x30020fb1
mov ebx, dword [ebp]
mov dword [esp + 0x1c], ebx
mov ecx, esi
shl ebx, cl
mov ecx, eax
sub ecx, esi
or ebx, edx
mov edx, dword [esp + 0x1c]
shr edx, cl
mov ecx, 0x20
sub ecx, eax
and edi, ebx
mov bl, byte [esp + 0x18]
add esi, ecx
add ebp, 4
or edi, dword [esp + 0x28]
test esi, esi
je 0x30020fc3
mov ecx, edx
and ecx, 1
shr edx, 1
dec esi
jmp 0x30020fd5
mov ecx, dword [ebp]
mov edx, ecx
add ebp, 4
shr edx, 1
mov esi, 0x1f
and ecx, 1
test ecx, ecx
movsx edi, di
je 0x30020fde
neg edi
movzx ecx, bl
mov word [esp + ecx*2 + 0x30], di
jmp 0x30021075
mov ecx, 0x20
or edi, 0xffffffff
sub ecx, eax
shr bl, 2
shr edi, cl
cmp esi, eax
mov byte [esp + 0x18], bl
jb 0x3002100c
and edi, edx
mov ecx, eax
shr edx, cl
sub esi, eax
jmp 0x30021035
mov ebx, dword [ebp]
mov dword [esp + 0x1c], ebx
mov ecx, esi
shl ebx, cl
mov ecx, eax
sub ecx, esi
or ebx, edx
mov edx, dword [esp + 0x1c]
shr edx, cl
mov ecx, 0x20
sub ecx, eax
and edi, ebx
mov bl, byte [esp + 0x18]
add esi, ecx
add ebp, 4
or edi, dword [esp + 0x28]
test esi, esi
je 0x30021047
mov ecx, edx
and ecx, 1
shr edx, 1
dec esi
jmp 0x30021059
mov ecx, dword [ebp]
mov edx, ecx
add ebp, 4
shr edx, 1
mov esi, 0x1f
and ecx, 1
test ecx, ecx
movsx edi, di
je 0x30021062
neg edi
movzx ecx, bl
mov word [esp + ecx*2 + 0x30], di
mov ecx, dword [esp + 0x24]
mov byte [ecx], 0
inc dword [esp + 0x24]
mov edi, dword [esp + 0x24]
cmp edi, dword [esp + 0x20]
jb 0x30020c75
mov bl, byte [esp + 0x17]
mov ecx, dword [esp + 0x2c]
sar word [esp + 0x28], 1
dec ecx
mov dword [esp + 0x2c], ecx
jne 0x30020c60
test bl, bl
je 0x3002134c
mov eax, dword [esp + 0x10]
cmp eax, dword [esp + 0x20]
mov ebx, eax
mov dword [esp + 0x24], ebx
jae 0x3002134c
mov al, byte [ebx]
test al, al
mov byte [esp + 0x1c], al
je case.default.0x300210fd
test esi, esi
je 0x300210d3
mov ecx, edx
and ecx, 1
shr edx, 1
dec esi
jmp 0x300210e5
mov ecx, dword [ebp]
mov edx, ecx
add ebp, 4
shr edx, 1
mov esi, 0x1f
and ecx, 1
test ecx, ecx
je case.default.0x300210fd
mov ecx, dword [esp + 0x1c]
and ecx, 3
cmp ecx, 3
ja case.default.0x300210fd
jmp dword [ecx*4 + 0x30021490]
shr al, 2
mov cl, al
shl cl, 2
add cl, 0x11
mov byte [ebx], cl
jmp 0x3002114d
mov edi, dword [esp + 0x20]
shr al, 2
shl al, 2
mov cl, al
add cl, 2
mov byte [ebx], cl
mov cl, al
add cl, 0x12
mov byte [edi], cl
mov cl, al
inc edi
add cl, 0x22
mov byte [edi], cl
inc edi
add al, 0x32
mov byte [edi], al
inc edi
mov dword [esp + 0x20], edi
jmp 0x30021344
shr al, 2
mov byte [ebx], 0
inc ebx
mov dword [esp + 0x24], ebx
test esi, esi
je 0x3002115b
mov ecx, edx
and ecx, 1
shr edx, 1
dec esi
jmp 0x3002116d
mov ecx, dword [ebp]
mov edx, ecx
add ebp, 4
shr edx, 1
mov esi, 0x1f
and ecx, 1
test ecx, ecx
je 0x30021186
mov edi, dword [esp + 0x10]
mov cl, al
dec edi
shl cl, 2
add cl, 3
mov dword [esp + 0x10], edi
mov byte [edi], cl
jmp 0x300211bd
test esi, esi
je 0x30021194
mov ecx, edx
and ecx, 1
shr edx, 1
dec esi
jmp 0x300211a6
mov ecx, dword [ebp]
mov edx, ecx
add ebp, 4
shr edx, 1
mov esi, 0x1f
and ecx, 1
neg ecx
sbb ecx, ecx
movzx edi, al
and ecx, 0xfffe
inc ecx
mov word [esp + edi*2 + 0x30], cx
mov edi, dword [esp + 0x10]
inc al
test esi, esi
je 0x300211cd
mov ecx, edx
and ecx, 1
shr edx, 1
dec esi
jmp 0x300211df
mov ecx, dword [ebp]
mov edx, ecx
add ebp, 4
shr edx, 1
mov esi, 0x1f
and ecx, 1
test ecx, ecx
je 0x300211f4
mov cl, al
dec edi
shl cl, 2
add cl, 3
mov dword [esp + 0x10], edi
mov byte [edi], cl
jmp 0x3002122b
test esi, esi
je 0x30021202
mov ecx, edx
and ecx, 1
shr edx, 1
dec esi
jmp 0x30021214
mov ecx, dword [ebp]
mov edx, ecx
add ebp, 4
shr edx, 1
mov esi, 0x1f
and ecx, 1
neg ecx
sbb ecx, ecx
movzx ebx, al
and ecx, 0xfffe
inc ecx
mov word [esp + ebx*2 + 0x30], cx
mov ebx, dword [esp + 0x24]
inc al
test esi, esi
je 0x3002123b
mov ecx, edx
and ecx, 1
shr edx, 1
dec esi
jmp 0x3002124d
mov ecx, dword [ebp]
mov edx, ecx
add ebp, 4
shr edx, 1
mov esi, 0x1f
and ecx, 1
test ecx, ecx
je 0x30021262
mov cl, al
dec edi
shl cl, 2
add cl, 3
mov dword [esp + 0x10], edi
mov byte [edi], cl
jmp 0x30021299
test esi, esi
je 0x30021270
mov ecx, edx
and ecx, 1
shr edx, 1
dec esi
jmp 0x30021282
mov ecx, dword [ebp]
mov edx, ecx
add ebp, 4
shr edx, 1
mov esi, 0x1f
and ecx, 1
neg ecx
sbb ecx, ecx
movzx ebx, al
and ecx, 0xfffe
inc ecx
mov word [esp + ebx*2 + 0x30], cx
mov ebx, dword [esp + 0x24]
inc al
test esi, esi
je 0x300212a9
mov ecx, edx
and ecx, 1
shr edx, 1
dec esi
jmp 0x300212bb
mov ecx, dword [ebp]
mov edx, ecx
add ebp, 4
shr edx, 1
mov esi, 0x1f
and ecx, 1
test ecx, ecx
je 0x300212cd
dec edi
shl al, 2
add al, 3
mov dword [esp + 0x10], edi
mov byte [edi], al
jmp 0x30021340
test esi, esi
je 0x300212db
mov ecx, edx
and ecx, 1
shr edx, 1
dec esi
jmp 0x300212ed
mov ecx, dword [ebp]
mov edx, ecx
add ebp, 4
shr edx, 1
mov esi, 0x1f
and ecx, 1
neg ecx
sbb ecx, ecx
and ecx, 0xfffe
movzx eax, al
inc ecx
mov word [esp + eax*2 + 0x30], cx
jmp 0x30021340
shr al, 2
test esi, esi
je 0x30021313
mov ecx, edx
and ecx, 1
shr edx, 1
dec esi
jmp 0x30021325
mov ecx, dword [ebp]
mov edx, ecx
add ebp, 4
shr edx, 1
mov esi, 0x1f
and ecx, 1
neg ecx
sbb ecx, ecx
and ecx, 0xfffe
movzx eax, al
inc ecx
mov word [esp + eax*2 + 0x30], cx
mov byte [ebx], 0
inc ebx
mov dword [esp + 0x24], ebx
mov edi, dword [esp + 0x20]
cmp ebx, edi
jb 0x300210b7
mov eax, dword [esp + 0x14c]
mov dword [eax], ebp
mov ecx, dword [esp + 0xb4]
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], esi
mov eax, dword [esp + 0x148]
mov dx, word [esp + 0x32]
mov ecx, dword [esp + 0x38]
mov word [eax + 2], dx
mov edx, dword [esp + 0x40]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x48]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x34]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 0x10], edx
mov edx, dword [esp + 0x44]
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x4c]
mov dword [eax + 0x18], edx
mov edx, dword [esp + 0x60]
mov dword [eax + 0x1c], ecx
mov ecx, dword [esp + 0x88]
mov dword [eax + 0x20], edx
mov edx, dword [esp + 0x50]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + 0x28], edx
mov edx, dword [esp + 0x64]
mov dword [eax + 0x2c], ecx
mov ecx, dword [esp + 0x8c]
mov dword [eax + 0x30], edx
mov edx, dword [esp + 0x54]
mov dword [eax + 0x34], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 0x38], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 0x3c], ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 0x40], edx
mov edx, dword [esp + 0x90]
mov dword [eax + 0x44], ecx
mov ecx, dword [esp + 0x98]
mov dword [eax + 0x48], edx
mov edx, dword [esp + 0x6c]
mov dword [eax + 0x4c], ecx
mov ecx, dword [esp + 0x74]
mov dword [eax + 0x50], edx
mov edx, dword [esp + 0x94]
mov dword [eax + 0x54], ecx
mov ecx, dword [esp + 0x9c]
mov dword [eax + 0x58], edx
mov edx, dword [esp + 0x78]
mov dword [eax + 0x5c], ecx
mov ecx, dword [esp + 0x80]
mov dword [eax + 0x60], edx
mov edx, dword [esp + 0xa0]
mov dword [eax + 0x64], ecx
mov ecx, dword [esp + 0xa8]
pop edi
mov dword [eax + 0x68], edx
mov edx, dword [esp + 0x78]
mov dword [eax + 0x6c], ecx
mov ecx, dword [esp + 0x80]
pop esi
mov dword [eax + 0x70], edx
mov edx, dword [esp + 0x9c]
mov dword [eax + 0x74], ecx
mov ecx, dword [esp + 0xa4]
pop ebp
mov dword [eax + 0x78], edx
mov dword [eax + 0x7c], ecx
pop ebx
add esp, 0x134
ret 8